Добавление n-ного количества полей в модель django
Я хочу добавить неограниченные поля в модель Django. На самом деле, я хочу, чтобы моя модель выглядела так, возможно ли это?
Это возможно, но несколько иным способом: А именно, создав другую модель (например, Choice
) и позволив нескольким объектам Choice
указывать на один и тот же Question
с помощью отношения ForeignKey
. Таким образом, объектов Choices
может быть произвольно много. Учебник Django, состоящий из семи частей, точно объясняет, как создать такое приложение. Я настоятельно рекомендую пройти его от начала до конца: https://docs.djangoproject.com/en/4.1/intro/tutorial01/
Это будет точно как на картинке
в панели администратора
admin.py
class AnswersInline(admin.TabularInline):
model = Answers
class QuestionAdmin(admin.ModelAdmin):
inlines = [
AnswersInline
]
admin.site.register(Question,QuestionAdmin)
modelpy
class Question(models.Model):
Username = models.CharField(max_length=50, verbose_name='User Name')
Question = models.CharField(max_length=50, verbose_name='Question')
CorrectAnswer = models.CharField(max_length=50, verbose_name='Hidden Answer')
def __str__(self):
return f"{self.Question}"
class Answers(models.Model):
QuestionId = models.ForeignKey('Question', models.DO_NOTHING)
Answer = models.CharField(max_length=50, verbose_name='User Name')
def __str__(self):
return f"{self.Answer}"