Django не может создать модель с достаточным количеством данных
models.py
class QuestionReply(models.Model):
reply_user = models.ForeignKey(cUser, on_delete=models.CASCADE)
reply_question = models.ForeignKey(Question, on_delete=models.CASCADE)
reply = models.TextField()
votes = models.IntegerField(default=0)
created_at = models.DateTimeField(auto_now_add=True)
views.py
class AddQuestionReply(APIView):
def post(self, request, id):
try:
reply = request.data.get('reply')
reply_user = request.data.get('reply_user')
reply_to_question = models.QuestionReply(reply_user=reply_user, reply_question=id, reply=reply)
reply_to_question.save()
return Response({'OK': 'Reply added'}, status=status.HTTP_200_OK)
except:
return Response({'400': f'QuestionReply has invalid data'}, status=status.HTTP_400_BAD_REQUEST)
urls.py
path('questions/question-reply/add/<int:id>', views.AddQuestionReply.as_view(), name='add-question-reply')
данные отправлены
{
"reply_user": "1",
"reply": "Hello, world"
}
У меня есть модель с 2 внешними ключами, TextField и 2 полями по умолчанию, я отправил необходимые данные на url (reply_question приходит с url), но по какой-то причине модель не создается и возникает ошибка
Поскольку id
и reply_user
являются ForeignKey
s, вы должны работать с reply_user_id
и reply_question_id
для указания первичных ключей соответствующих объектов, так:
reply_to_question = QuestionReply.objects.create(
reply_user_id=reply_user,
reply_question_id=id,
reply=reply
)