Django Foreignkey проблема, - PullRequest
       0

Django Foreignkey проблема,

0 голосов
/ 20 декабря 2010
class Service(models.Model)
name = models.CharField("service name", max_length = 20, unique = True)


class Newclass(models.Model):
 service = models.ForeignKey(Services)
 user1 = models.ForeignKey(User)

В основном, что я хочу: Для каждого сервиса у меня может быть разный пользователь1, но нет дубликата пользователя1 для любого сервиса.пример

service = 'some'  user1 = 'amit'
service = 'some'   user1 = 'laspal'
service = 'some1'  user1 = 'amit'

Итак, как избежать этих условий:

   service = 'some'    user1 = 'amit'
   service = 'some'    user1  = 'amit'

Должен ли я проверять при добавлении user1 в newclass или есть какое-то поле, которое я пропускаю, которое я могу использовать с помощью Fk().

Спасибо.

Ответы [ 2 ]

3 голосов
/ 20 декабря 2010

Если вы имеете в виду, что не хотите, чтобы модели 2 Newclass могли существовать с одним и тем же сервисом и пользователем1, вам следует использовать:

class Newclass(models.Model):
  service = models.ForeignKey(Services)
  user1 = models.ForeignKey(User)

  class Meta:
    unique_together = (('service', 'user1'),)
2 голосов
/ 20 декабря 2010

Вы хотите unique_together:

class Newclass(models.Model):
  service = models.ForeignKey(Services)
  user1 = models.ForeignKey(User)

  class Meta:
    unique_together = ('service', 'user1')

Что unique_together делает (из документации ):

Это список списков полей, которые должны быть уникальными при совместном рассмотрении.Он используется в админке Django и применяется на уровне базы данных (т. Е. Соответствующие операторы UNIQUE включены в оператор CREATE TABLE).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...