Django: передача информации между приложениями
У меня есть две модели в двух разных приложениях, в первой я спрашиваю биографическую информацию пользователя, во второй у него есть вопрос, на который он должен ответить. Я хотел бы сохранить в базе данных не только ответы, но и id код, созданный в файле модели учетной записи, и использовать ответ userinformation для создания строкового имени для использования в базе данных, но это дает мне ошибку "'ImportError: cannot import name 'name' from 'accounts.models' "
даже если я импортировал модули - Вот мой код:
**accounts.models**
class UserInformation(models.Model):
name = models.CharField(max_length=250)
lastname = models.CharField(max_length=250)
phone = models.CharField(max_length=250)
birthday = models.DateField()
age = models.CharField(max_length=2)
id = models.CharField(max_length=250)
def __str__(self):
self.name + '_' + self.lastname + '_' + str(self.birthday.year)
if self.id_code =="":
self.id_code = self.name + '_' + self.lastname + '_' + str(self.birthday.year)
self.save()
super(UserInformation, self).save(*args, **kwargs)
**accounts.forms.py**
class UserInformationForm(forms.ModelForm):
class Meta:
model = UserInformation
fields = ('name', 'lastname', 'birthday', 'phone')
**accounts.views.py**
def add_information(request):
if request.method == 'POST':
form = UserInformationForm(request.POST, request.FILES)
if form.is_valid():
form.instance.user = request.user
form.save()
return redirect('home')
else:
form = UserInformationForm()
return render(request, 'add_information.html', {'form': form})
**question.models.py**
from accounts.models import name
class QuestionOne(models.Model):
question_1a = models.CharField(max_length=250, choices=point)
question_2a = models.CharField(max_length=250, choices=point)
question_3a = models.CharField(max_length=250, choices=point)
id_code = models.CharField(max_length=250)
def __str__(self):
return self.name + '_question_1'
class QuestionTwo(models.Model):
question_1b = models.CharField(max_length=250, choices=point)
question_2b = models.CharField(max_length=250, choices=point)
question_3b = models.CharField(max_length=250, choices=point)
id_code = models.CharField(max_length=250)
def __str__(self):
return self.name + '_question_2'
**question.forms.py**
class QuestionOneForm(forms.ModelForm):
class Meta:
model = QuestionOne
fields = ('question_1a', 'question_2a', 'question_3a')
class QuestionTwoForm(forms.ModelForm):
class Meta:
model = QuestionOne
fields = ('question_1b', 'question_2b', 'question_3b')
Что я делаю не так?
Вы должны использовать внешний ключ и удалить незаконный импорт:
class QuestionOne(models.Model):
user = models.ForeignKey("accounts.userinformation", on_delete=models.CASCADE)
question_1a = models.CharField(max_length=250, choices=point)
question_2a = models.CharField(max_length=250, choices=point)
question_3a = models.CharField(max_length=250, choices=point)
id_code = models.CharField(max_length=250)
def __str__(self):
return self.user.name + '_question_1'