ManyToManyField с использованием Through и blank = True все еще требуется в интерфейсе администратора - PullRequest
2 голосов
/ 14 декабря 2010

Моя модель (частичный код):

class Observation(models.Model):
    date = models.DateField()
    geom = models.PointField()
    values = models.ManyToManyField(Label, through='Value', null=True, blank=True)
    objects = models.GeoManager()


class Value(models.Model):
    observation = models.ForeignKey(Observation)
    label = models.ForeignKey(Label)
    value = models.CharField(max_length=100)
    objects = models.GeoManager()

Когда я управляю объектом наблюдения в интерфейсе администратора, он по-прежнему говорит, что для каждого наблюдения требуется хотя бы одно значение.

Ячто-то не так, это ошибка, или я должен написать производный класс Admin для решения этой проблемы?

Ответы [ 2 ]

1 голос
/ 14 января 2011

Я решил это, улучшив мой ERM. Значения полей в Observation устарели, поскольку вы получаете value_set из отношения ForeignKey в Value.

Все еще странный побочный эффект, но поскольку ответов не было, я буду считать это чем-то, что происходит не часто.

0 голосов
/ 18 июля 2012

Это случилось со мной тоже.

Как именно вы это решили?

Следующая модификация, кажется, добивается цели: Но не уверен, какой эффект это оказывает на уровне БД.

class Value(models.Model):
    label = models.ForeignKey(Label, blank=True, null=True)
...