Django: редактирование поля множества моделей, на которое ссылается другая модель, через форму - PullRequest
0 голосов
/ 12 марта 2012

Я пытаюсь создать экземпляр модели, который включает в себя список моделей через поле «многие ко многим» через ModelForm.Однако, когда это происходит, я должен иметь возможность изменить одно из полей, на которые ссылаются.

Вот раздетый код:

class AllAtt(models.Model):
    weighting = models.IntegerField(null=True,blank=True)
    mass = models.IntegerField(null=True,blank=True)
    required_Power = models.IntegerField(null=True,blank=True)
    memory = models.IntegerField(null=True,blank=True)

class Mission(AllAtt):
    name = models.CharField(max_length=50)
    def __unicode__(self):
        return self.name

class Scenario(models.Model):
    name = models.CharField(max_length=50)
    creation_date = models.DateTimeField(default=datetime.now)
    creator = models.ForeignKey(User,null=True,blank=True)
    mission = models.ManyToManyField(Mission)
    def __unicode__(self):
        return self.name

class ScenarioForm(ModelForm):
    class Meta:
        model = Scenario
        fields = ('name','mission',)

Где экземпляры миссий импортируются из базы данных.В настоящее время это позволяет мне выбирать экземпляры Миссии из поля множественного выбора, однако это не то, что мне нужно.Я хочу иметь возможность включить все экземпляры Миссии в Сценарий, а затем изменить поле «Вес» через форму.

Простой пример того, что я пытаюсь сделать: у меня естьопределенное количество задач (Миссий) и когда они объединены, они что-то выполняют (Сценарий).У человека много задач.Если мой Сценарий «Готовимся к свиданию», то эти функции могут быть оценены по важности как: Приготовление кофе - 0, Кормление собаки - 2, Душ - 3, Одеться - 5. Принимая во внимание, что если Сценарий «Работает над кодом Django»«Эти функции имеют следующие весовые значения: приготовить кофе - 5, кормить собаку - 2, принять душ - 0, одеться - 1. И каждый раз, когда я создаю новый сценарий, мне нужно иметь возможность изменять вес всех возможных задач.

Любая помощь или понимание того, как этого добиться, будет принята с благодарностью.Спасибо!

1 Ответ

0 голосов
/ 12 марта 2012

Как я понимаю, вам нужно указать вес на Mission отношениях в Scenario.

В основном вам нужна through модель (с весом). Вы можете увидеть это задокументировано здесь: https://docs.djangoproject.com/en/dev/topics/db/models/#intermediary-manytomany

...