Ich möchte change_form
Nation
Modell-ID Django Admin passieren, so kann ich eine Taste oder zwei zeigen bei der Bearbeitung. Ich habe versucht, die ID an die Funktion render_change_form übergeben und in der Vorlage beenden, aber ich bekomme den folgenden Fehler.ID Attribut Fehler Django Admin in Form ändern
'NationAdmin' object has no attribute 'nation_id'
N: B Dies funktioniert gut bei der Bearbeitung, aber es wird diesen Fehler werfen, wenn ich ein neues Modell Objekt über Django Admin-Dashboard hinzufügen möchten.
Methoden unter NationAdmin
#this method is to get the id
def change_view(self, request, nation_id=None, form_url='', extra_context=None):
self.nation_id = nation_id
return self.changeform_view(request, nation_id, form_url, extra_context)
#for form
def render_change_form(self, request, context, *args, **kwargs):
if self.nation_id: #django is telling me this line is causing error
nation= self.get_object(request, self.nation_id)
context.update({'nation':nation})
return super(NationAdmin, self).render_change_form(request, context, *args, **kwargs)
Change_form.html
{% if not nation.is_moderated and not nation.is_rejected %}
<a href="{% url 'activate_moderation' nation.id %}"> <input type="button" value="{% trans 'Approve' %}" name="_approvebutton" /></a>
{% endif %}
okay .. wo kommt das "Original" rein? Ein Schlüsselwort im Model Admin? – YoYo
Es ist das Schlüsselwort, das in admin verwendet wird, das das Objekt sein wird, das Sie ändern. Wenn ein neues Objekt hinzugefügt wird, ist es None. Deshalb lege ich wenn Bedingung – itzMEonTV
Okay lassen Sie mich es versuchen. Vielen Dank! – YoYo