Есть ли в django поле, которое может иметь несколько полей внешнего ключа? - PullRequest
1 голос
/ 04 июня 2011

Есть ли в django поле, которое может иметь несколько полей внешнего ключа?У меня есть следующий код:

from django.db import models
from django.auth.models import *
class Wish(Model):
    name = CharField(max_length=128)
    cost = IntegerField()
    person = ForeignKey(Person)
    date = DateField('Date Wished')
    comments = CharField(max_length=1024)
    def __unicode__(self):
        return name

class Person(Model):
    user = ForeignKey(User)
    friends =...  # multiple foriegn keys of itself

Ответы [ 2 ]

4 голосов
/ 04 июня 2011

Попробуйте использовать поле ManyToMany .

Обратите внимание, что ManyToMany для той же модели считается симметричным - если Лицо A является другом Лица B, то Лицо B также будет другом Лица A. Вы можете указать симметричный = Ложно, чтобы избежать этого.

1 голос
/ 04 июня 2011

Я думаю, что вы хотите поле ManyToMany.В этом примере вы говорите, что человек может дружить со многими другими людьми, и наоборот.

Поле ManyToMany Джанго:

https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ManyToManyField

Общее ManyToMany:

http://en.wikipedia.org/wiki/Many-to-many_(data_model)

...