Итак, по сути, я использую django -nested-admin для создания модели типа «викторина», в которой администратор может добавлять пользовательские вопросы и ответы на эти вопросы. Теперь проблема заключается в том, что представление администратора не может различить guish, какие ответы принадлежат к каким вопросам, поэтому каждый раз, когда пользователь выбирает вариант ответа, он может выбирать из каждого ответа для каждого когда-либо созданного вопроса. Я включил фотографию того, как это выглядит от администратора.
Я попытался переопределить форму formfield_foreign_key для администратора и смог отфильтровать показанные варианты ответов путем жесткого кодирования идентификатора вопроса. Тем не менее, я хочу иметь возможность фильтровать ответы на основе вопроса, связанного с ответом, и у меня возникают проблемы при этом. Кто-нибудь может предоставить какое-либо понимание? Заранее спасибо.
Ответы все перепутаны в представлении ответа администратора:
Ответы отфильтрованы по жестко заданному идентификатору:
Текущий код, который фильтрует по жестко заданному идентификатору вопроса:
class ResponseInline(admin.TabularInline):
model = Response
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "answer":
kwargs["queryset"] = Answer.objects.filter(question_id = 1)
return super().formfield_for_foreignkey(db_field, request, **kwargs)
Моя текущая модель ответа в models.py:
class Response(models.Model):
question_form = models.ForeignKey(AdditionalQuestions, on_delete=models.CASCADE, null=True)
user = models.ForeignKey(Profile, on_delete=models.CASCADE, null = True)
question = models.ForeignKey(Question, on_delete=models.CASCADE, null=True)
answer = models.ForeignKey(Answer,on_delete=models.CASCADE, null=True)
def __str__(self):
return self.question.label