У меня есть две модели:
class Profile(models.Model):
profileName = models.CharField(max_length=50)
class RelatedProfile(models.Model):
relatedProf = models.ManyToManyField(UseCaseProfile, through='UseCaseProfileRelatedUseCase')
relationType= models.CharField(max_length=3, choices=RELATION_CHOICE)
Следуя документации Django о связях ManyToMany, я создал эту таблицу ниже:
class ProfileRelated(models.Model):
prof = models.ForeignKey(Profile, on_delete=models.CASCADE)
related = models.ForeignKey(RelatedProfile, on_delete=models.CASCADE)
Я собираюсь установить inlineformset гдеродительской моделью является профиль, а дочерней моделью - RelatedProfile.Поэтому я сделал следующее:
forms.py
class ProfileForm(ModelForm):
class Meta:
model = Profile
fields='__all__'
class RelatedUCForm(ModelForm):
class Meta:
model = RelatedUseCase
fields = '__all__'
RelatedUCFormSet = inlineformset_factory(Profile, RelatedProfile.relatedProf.through)
views.py (я пропустил ненужный код)
class ProfileUpdateView(UpdateView):
template_name = "some.html"
model = Profile
form_class = ProfileForm
def get_context_data(self, **kwargs):
context = super(ProfileUpdateView, self).get_context_data(**kwargs)
if self.request.POST:
context['relatedProfile_form'] = RelatedUCFormSet(self.request.POST, self.request.FILES, instance=self.object, prefix='related')
else:
context['relatedProfile_form'] = RelatedUCFormSet(instance=self.object, prefix='related')
return context
На основе моделей, форми просмотрите, я хочу отобразить веб-страницу следующим образом:
<code><pre>
Profile
profileName: Textfield
Related
Profile: Dropdown with related Profile
:relationType: choicefield
Однако, когда я отображаю свою веб-страницу, я не получаю раскрывающийся список, чтобы выбрать, какой профиль я хочуотноситься к родительскому профилю.В целом, моя проблема заключается в том, чтобы в раскрывающемся списке «Связанные» отображался список профилей, из которых я мог выбрать.