SORU
17 Temmuz 2009, Cuma


Neden bazı model alanların birbiriyle çakışıyor?Django:

Kullanıcılar için 2 bağlantıları içeren bir nesne oluşturmak istiyorum. Örneğin:

class GameClaim(models.Model):
    target = models.ForeignKey(User)
    claimer = models.ForeignKey(User)
    isAccepted = models.BooleanField()

ama sunucu çalışırken aşağıdaki hataları alıyorum:

  • Erişimci 'hedef' saha 'Kullanıcı.ile çatışmalar alanı için'. gameclaim_set Tanımı için related_name bir değişken Ekle 'hedef'.

  • Erişimci alan '' ilgili alan ile çatışmalar 'Kullanıcı.bahis ATI için'. gameclaim_set Tanımı için related_name bir değişken Ekle''. bahis ATI

Bu hataları alıyorum neden ve nasıl giderileceğini açıklar mısınız lütfen?

CEVAP
17 Temmuz 2009, Cuma


Kullanıcı için iki yabancı anahtarları var. Django otomatik olarak kullanıcıdan ters bir ilişki genellikle gameclaim_set olan GameClaim, geri oluşturur. İki Sayılı zorunda çünkü ancak, belli ki bu imkansızdır gameclaim_set iki öznitelikleri olurdu. Ters ilişki için hangi Django söyleyin.

FK tanımı related_name özniteliğini kullanın. örneğin

class GameClaim(models.Model):
    target = models.ForeignKey(User, related_name='gameclaim_targets')
    claimer = models.ForeignKey(User, related_name='gameclaim_users')
    isAccepted = models.BooleanField()

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Blendtec

    Blendtec

    30 EKİM 2006
  • TantalizingTrance

    TantalizingT

    15 ŞUBAT 2009
  • Warner Bros. UK

    Warner Bros.

    6 HAZİRAN 2008