class A(Model):
to_b = ManyToManyField('B', blank=True, through='AtoB')
class B(Model):
to_a = ManyToManyField('A', blank=True, through='AtoB')
class AtoB(Model):
a = ForeignKey('A', on_delete=CASCADE)
b = ForeignKey('B', on_delete=CASCADE)
usr = ForeignKey(settings.USER, on_delete=CASCADE)
# some other fields
Im делает приложение для django.
Это примерно эквивалентно тому, что у меня есть в моих моделях.py
Мне нужно отношение m2m между A и B, чтобы пройти через другую модель, потому что мне нужно хранить там дополнительные данные.
Теперь возникает проблема - когда я пытаюсь сохранить экземпляр модели A в моем пользовательском представлении, отношения с B экземпляры не сохраняются независимо от того, выбираю я их или нет. И когда я иду http://127.0.0.1:8000/admin и попытаться создать экземпляр А оттуда, я даже не видеть собственное поле (должно быть <select multiple>
я думаю) для выбора отношений с B.
Может кто-нибудь объяснить мне, почему отношения не сохраняются и даже не отображаются в/admin?
Вот код примерно соответствует тому, что я имею в views.py:m2m отношения не отображаются или сохраняются в django
class Create(CreateView):
model = None # A or B
template_name = 'something.html'
def form_valid(self, form):
self.object = form.save(commit=False)
form.save()
return HttpResponseRedirect(self.get_success_url())
в urls.py я указать дополнительные аргументы, например: views.Create.as_view(model=models.A, fields=['to_b'])
Пожалуйста, поделитесь кусок кода, где вы пытаетесь создать эту связь. –
сделано, смотрите – Rob