Django modelindeki alan için varsayılan değer


100

Bir modelim olduğunu varsayalım:

class SomeModel(models.Model):
    id = models.AutoField(primary_key=True)
    a = models.CharField(max_length=10)
    b = models.CharField(max_length=7)

Şu anda bu türden nesneleri oluşturmak / düzenlemek için varsayılan yöneticiyi kullanıyorum. Nasıl alanını kaldırırım bher nesnenin böylece yöneticiden edemez bir değerle oluşturulacak ve oldukça varsayılan değeri alacaktır 0000000?

Yanıtlar:



22

Varsayılanı şu şekilde ayarlayabilirsiniz:

b = models.CharField(max_length=7,default="foobar")

ve sonra alanı modelinizin Admin sınıfıyla şu şekilde gizleyebilirsiniz:

class SomeModelAdmin(admin.ModelAdmin):
    exclude = ("b")

21

Varsayılan alanda aşağıdaki gibi bir çağrılabilir de kullanabilirsiniz:

b = models.CharField(max_length=7, default=foo)

Ve sonra çağrılabilir olanı tanımlayın:

def foo():
    return 'bar'

4
Bu, 1.8'de çalışmıyor gibi görünüyor, ancak dokümantasyon olması gerektiğini gösteriyor. foo()Bir sınıf yöntemi olmalı mı ?
ToothlessRebel

4
@staticmethodSarmalayıcıyı foo işlevi etrafında ayarlamanız gerekebilir .
Addict
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.