Я хотел бы моделировать отношения между пользователями. Например: знают ли они друг друга?Django: Отношения между пользователями (хранить уникальные пары/комбинации)
Вот мое первое предположение:
class Relation(models.Model):
a = models.ForeignKey(User, related_name='related_a')
b = models.ForeignKey(User, related_name='related_b')
met = models.BooleanField(default=False)
class Meta:
unique_together = ('a', 'b')
Очевидно, что эта модель позволяет a == b
и иметь два Relation
экземпляров для тех же двух людей.
Чтобы решить, что я пытался добавить материал в методе save()
и в ModelForm
проверить a.id < b.id
, так что я могу получить только один Relation
для 2 данного народа, но это не является интуитивно понятным в использовании (мы должны угадать хороший заказ, когда мы хотим добавить Relation
)
Есть ли лучший способ сохранить уникальную пару (комбинации) в моделях Django?
Спасибо.
Вы пытались расширить модель User, чтобы добавить поле, скажем, 'knownuser = models.ManyToManyField ('auth.User', blank = True)' –
Если был только один (или несколько) 'models.BooleanField', это было бы правильным делом; но в моем приложении есть также 'models.IntegerField' и даже' models.DateField' :( – Nim