Я взламываю Django, поскольку я новичок в нем, чтобы создать сайт, на который пользователь может войти и ответить на некоторые вопросы. Для зарегистрированного пользователя я намерен хранить их имя пользователя, идентификатор вопроса и ответ на вопрос. Тем не менее, после нескольких часов работы я полностью не увенчался успехом. Ниже я дал фрагменты Models.py
и Views.py
Сохраните конкретные данные пользователя в Django
Models.py
- я копирую только UserProfile класса и Userresponse класса, которые необходимы для создания профиля пользователя и таблицы Действия пользователя
# Model class for creating user
class UserProfile(models.Model):
user = models.OneToOneField(User)
def __str__(self):
return self.user.username
# Model class for getting user response
class UserResponse1(models.Model):
user = models.ForeignKey(UserProfile, default=0)
questoinId = models.ForeignKey(Question)
option = models.IntegerField(default=0)
`` `Views.py` `
def response(request, question_id):
q = UserResponse1()
if request.user.is_authenticated():
q.user = request.user.username
q.questionId_id = question_id
q.option +=request.POST['choice']
q.save()
# Redisplay the question voting form.
return HttpResponseRedirect(reverse('polls:overallResults'))
Однако, работает над я получаю следующее сообщение об ошибке - Cannot assign "u'abc123'": "UserResponse1.user" must be a "UserProfile" instance.
abc123
- это имя пользователя. Я не могу понять причину этой ошибки. Любая помощь по исправлению этой ошибки, чтобы я мог записать данные в таблицу UserResponse1, будет очень полезной.
Я использую Django 1.8 на Python 2.7
все еще получаю ошибку - Невозможно назначить '' ">": "UserResponse1.user" должно быть "UserProfile" instance''. Возможно ли определить объект '' user'' так, чтобы он просто «' имя пользователя », а не« пользователь » –
Pawan
Извините, моя ошибка, я неправильно прочитал ваши модели. Вам нужно назначить профиль пользователя, а не пользователя. Я обновил свой ответ. Нет, невозможно назначить использование строки имени пользователя, вам нужно назначить экземпляр (или его идентификатор). – Alasdair
Спасибо за вашу помощь, но я все еще не уверен, что происходит неправильно, при реализации вашего предложения ошибка: «Исключение: пользователь не имеет userpfrofile'' – Pawan