2016-05-04 9 views
4

Es klingt wie eine triviale Frage, aber es scheint nicht so einfach zu beantworten:Django Admin Benutzerdefinierte Widget für ForeignKey

Wie würden Sie ein ForeignKey Feld als Checkbox in Django Admin anzeigen und speichern Sie die aktuell angemeldeten Benutzer, wenn dieser Benutzer das Kontrollkästchen in Admin überprüft?

Beispiel:

class MyModel(models.Model): 
    ... 
    approved = models.ForeignKey(User) 
    ... 

admin.site.register(MyModel) 

Wie würde ich in der Lage sein, das approved Feld als Checkbox angezeigt werden?

Vielen Dank im Voraus für Ihre Hilfe!

Antwort

0

Sie könnten die get_form Methode in Ihrem ModelAdmin verwenden und das Formular an Ihre Wünsche anpassen.

In diesem Fall müssten Sie das Widget Felder in ein Kontrollkästchen ändern und den Wert request.user bei der Formularvalidierung festlegen (falls aktiviert).

+0

Vielen Dank für Ihre Antwort! Und Sie sind sicher, dass Djangos Formreinigungsmethoden diesen Ansatz nicht blockieren? –

+0

Da Sie die saubere Methode für dieses Feld implementieren müssen, ist es ganz Ihnen überlassen. Nicht Django. –

0

In Ihrem form.py Siehe folgt:

class YOURMODELForm(forms.ModelForm): 
    approved = forms.ModelChoiceField(queryset=User.objects.order_by('name')) 
Verwandte Themen