Ich möchte die wenigen felder vom modell in django admin beim ersten speichern deaktivieren.make django model field nur lesen oder deaktivieren in admin beim ersten speichern des objekts
"<input type="text" id="disabledTextInput" class="form-control" placeholder="Disabled input">"
so.
Mein Modell ist:
class Blogmodel(models.Model):
tag = models.ForeignKey(Tag)
headline = models.CharField(max_length=255)
image=models.ImageField(upload_to=get_photo_storage_path, null=True, blank=False)
body_text = models.TextField()
pub_date = models.DateField()
authors = models.ForeignKey(Author)
n_comments = models.IntegerField()
Ich möchte die "Überschrift" und "n_comments" deaktivieren. Ich habe es in der Datei admin.py versucht, aber es deaktiviert nicht die Felder beim ersten Speichern. Aber zum Bearbeiten der Felder funktioniert es, es macht die Felder nur lesbar.
in admin.py
class ItemAdmin(admin.ModelAdmin):
exclude=("headline ",)
def get_readonly_fields(self, request, obj=None):
if obj:
return ['headline ']
else:
return []
Headling deaktiviert bekommen, aber für die Bearbeitung nur. Ich möchte es zum Zeitpunkt der Objekterstellung deaktivieren. d.h. zuerst speichern. kann mich jemand dafür leiten?
Warum verwenden Sie nicht stattdessen die Eigenschaft readonly_fields? – GwynBleidD
wird es für die Bearbeitung der Objekte nicht für das Erstellen des Objekts zum ersten Mal arbeiten. – Gaurav
Es funktioniert für beide, wenn Sie "get_readonly_fields" nicht überschreiben. – GwynBleidD