Angenommen, ich habe ein Modell:
class SomeModel(models.Model):
id = models.AutoField(primary_key=True)
a = models.CharField(max_length=10)
b = models.CharField(max_length=7)
Derzeit verwende ich den Standardadministrator zum Erstellen/Bearbeiten von Objekten dieses Typs. Wie entferne ich das Feld b
vom Admin, damit nicht jedes Objekt mit einem Wert erstellt werden kann und erhalten stattdessen den Standardwert 0000000
?
Setzen Sie editable
auf False
und default
auf Ihren Standardwert.
http://docs.djangoproject.com/en/dev/ref/models/fields/#editable
b = models.CharField(max_length=7, default='0000000', editable=False)
Außerdem ist Ihr id
-Feld nicht erforderlich. Django fügt es automatisch hinzu.
Sie können den Standard wie folgt festlegen:
b = models.CharField(max_length=7,default="foobar")
und dann können Sie das Feld mit der Admin-Klasse Ihres Modells wie folgt ausblenden:
class SomeModelAdmin(admin.ModelAdmin):
exclude = ("b")
Sie können auch ein Callable im Standardfeld verwenden, z. B .:
b = models.CharField(max_length=7, default=foo)
Und dann definieren Sie die aufrufbare:
def foo():
return 'bar'