2012-05-07 12 views
7

Django (1.4) modelinde çoktan çoğa ilişkim var.Django'da çoktan çoğa bir ilişkide en az bir değeri zorlar mı?

class UserProfile(models.Model): 
    foos = models.ManyToManyField(Foo) 

Her Kullanıcının (Profil) en az bir Foo'ya sahip olmasını zorlamak istiyorum. Foos sıfır veya daha fazla Kullanıcı (Profiller) s olabilir.

Bunun model ve yönetici seviyelerinde uygulanmasını çok isterim, ancak bunu yöneticiye uygulamak yeterli olacaktır.

Doğru anlıyorsam, Django konuşmasında 'çok' sıfır veya daha fazladır.

ManyToOneOrMore ilişkisi istiyorum. Bunu nasıl yapabilirim?

Teşekkürler,

Chris.

cevap

4

Bunu, model düzeyinde @Greg ayrıntıları olarak uygulayamazsınız, ancak numaralı telefonu, yalnızca gerekli alanı yaparak bir formda uygulayabilirsiniz. Bu, herkesin kabuk düzeyinde erişimi, bir foo olmadan bir UserProfile oluşturmasını engelleyemez, ancak tarayıcı tabanlı bir form oluşturma yöntemini kullanan herkesi zorlar.

7

Maalesef, bu modelin mümkün olduğunu düşünmüyorum çünkü ManyToMany verileri diğer model alanlarından ayrı olarak kaydedilir. Özel bir form belirleyerek ve formda bir clean() yöntemi yazarak bunu yönetici düzeyinde uygulayabilmeniz gerekir.

İlgili konular