Члены Choice_set и id неизвестны
Я начинаю работать с django, я следовал официальному руководству и столкнулся с проблемой. У меня есть такой блок кода:
def vote(request, question_id):
question = get_object_or_404(Question, pk=question_id)
try:
selected_choice = question.choice_set.get(pk=request.POST["choice"])
except (KeyError, Choice.DoesNotExist):
# Redisplay the question voting form.
return render(
request,
"polls/detail.html",
{
"question": question,
"error_message": "You didn't select a choice.",
},
)
else:
selected_choice.votes += 1
selected_choice.save()
# Always return an HttpResponseRedirect after successfully dealing
# with POST data. This prevents data from being posted twice if a
# user hits the Back button.
return HttpResponseRedirect(reverse("polls:results", args=(question.id,)))
Код работает совершенно нормально, однако, по какой-то причине VS Code выделяет атрибуты ID и CHOICE_SET. Вот мой models.py:
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField("date published")
def __str__(self) -> str:
return self.question_text
def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
def __str__(self) -> str:
return self.choice_text
Я предполагаю, что проблема в VS Code, потому что, как я уже сказал, код работает нормально, и я могу его запустить. Я просто очень хочу убрать красное выделение и исправить это.
Подозреваю, что дело в том, что ваш VS Code не может найти, куда был установлен ваш пакет django на вашем диске (так что VS Code знает ваш класс Question, но не класс models.Model, от которого Question наследует, поэтому IDE жалуется на незнание атрибутов, которые определены только в models.Model). Поскольку я не работаю с VS Code, я не могу точно сказать, какие шаги нужно предпринять; вероятно, вам нужно как-то настроить переменную окружения "PYTHONPATH", которую использует ваш VS Code; аналогично, возможно, здесь: https://stackoverflow.com/a/57742434/17093315