Как получить удостоверение личности объекта
Я пытаюсь получить ID опционов, однако я не знаю, что я могу сделать, чтобы получить его?
Я новичок в Django - я получил ID вопроса через параметр, однако я не пытаюсь передать другой параметр. Есть ли фильтр или команда get, которую можно использовать?
Я пытаюсь отредактировать существующую опцию, но она не знает, какую опцию ищет, поскольку их несколько. Единственный способ определить - через его ID
Модель
class Option(models.Model):
OptionID = models.AutoField(primary_key=True, unique=True)
OptionText = models.CharField(max_length=256, null=True)
QuestionsID = models.ForeignKey(Question, on_delete=models.CASCADE)
def __str__(self):
return str(self.OptionID)
View
@login_required(login_url='loginPage')
def question_editOption(request, id):
question = Question.objects.get(QuestionsID = id)
options = Option.objects.filter(QuestionsID = question)
current_user = request.user
c = current_user.userID
if current_user.is_admin:
if request.method == 'POST':
edited = request.POST.get('Q')
if request.POST['Q']:
obj = Option.objects.filter(QuestionsID = id, ).update(OptionText = edited)
messages.success(request, "Edited")
return redirect('dashboardAdmin')
# elif not request.POST['Q']:
# obj = Question.objects.filter(QuestionsID = id).update(QuestionText = oldVal)
# messages.error("Question Is Null!")
# return redirect('question/edit/<int:id>/')
else:
messages.error("User is not admin")
return redirect('dashboardPage')
context = {'question' : question,
'options' : options}
return render(request, 'editOption.html', context)
HTML
def question_editOption(request, id):
question = Question.objects.get(QuestionsID = id)
options = Option.objects.filter(QuestionsID = question[0])
Без сообщения об ошибке я не уверен на 100%, что будет исправлено.
Но когда я определяю объект и передаю его как pk для другого поля, мне обычно приходится фактически обращаться к объекту, используя первый индекс [0]
Предполагаю, что id в вашей функции - это первичный ключ, передаваемый из URL?