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

  • macpulenta

    macpulenta

    9 EYLÜL 2006
  • MrChiCity3

    MrChiCity3

    14 NİSAN 2008
  • TomOdellVEVO

    TomOdellVEVO

    29 Mayıs 2012