如何解决如何在django中插入带有外键字段的modelForm数据?
我收到以下错误:
无法分配“'3'”:“Issue.isbn”必须是“Book”实例。
这是我的模型,有两个外键属性:
runtime: python39
handlers:
# This configures Google App Engine to serve the files in the app's static
# directory.
- url: /static
static_dir: static/
# This handler routes all requests not caught above to your main app. It is
# required when static routes are defined,but can be omitted (along with
# the entire handlers section) when there are no static files defined.
- url: /.*
script: auto
#Forms -----------------------------------
class IssueForm(forms.ModelForm):
class Student(models.Model):
id = models.OnetoOneField(User,on_delete=models.CASCADE,primary_key=True,verbose_name='ID')
class_name = models.CharField(max_length=100)
roll = models.CharField(max_length=100)
section = models.CharField(max_length=100)
shift = models.CharField(max_length=100)
medium = models.CharField(max_length=100)
session = models.CharField(max_length=100)
sin = models.CharField(max_length=100)
resident = models.CharField(max_length=100)
hall = models.CharField(max_length=100)
room = models.CharField(max_length=100)
def __str__(self):
return str(self.id.id)
class Meta:
managed = False
db_table = 'student'
@receiver(post_save,sender=User)
def create_student(sender,instance,created,**kwargs):
if created:
Student.objects.create(id=instance)
instance.student.save()
class Book(models.Model):
id = models.BigAutoField(primary_key=True,serialize=False,verbose_name='ID'),title = models.CharField(max_length=100)
category = models.CharField(max_length=100)
language = models.CharField(max_length=100)
isbn = models.CharField(max_length=100,unique=True)
author = models.CharField(max_length=100)
publisher = models.CharField(max_length=100)
edition = models.CharField(max_length=100)
year = models.CharField(max_length=100)
quantity = models.IntegerField()
issued = models.IntegerField(null=True,blank=True)
price = models.CharField(max_length=100)
location = models.CharField(max_length=100)
donated_by = models.CharField(max_length=100)
def __str__(self):
return "%s" % self.id
class Meta:
managed = False
db_table = 'book'
class Issue(models.Model):
id = models.BigAutoField(primary_key=True,isbn = models.ForeignKey(Book,verbose_name='isbn_id')
student = models.ForeignKey(Student,verbose_name='student_id')
quantity = models.IntegerField()
issued_date = models.DateField()
return_date = models.DateField()
# def __str__(self):
# return "%s" % (self.student)
class Meta:
managed = False
db_table = 'issue'
我想插入一些数据 浏览量------------------------------
student = forms.CharField(
widget=forms.TextInput(
attrs={
"placeholder": "student","class": "form-control"
}
))
isbn = forms.CharField(
widget=forms.TextInput(
attrs={
"placeholder": "isbn","class": "form-control"
}
))
quantity = forms.IntegerField(initial=1,widget=forms.NumberInput(
attrs={
"placeholder": "quantity","class": "form-control"
}
))
issue_date = forms.DateField(initial=datetime.today(),disabled=True,widget=forms.DateInput(
attrs={
'type': 'date',"placeholder": "issue_date","class": "form-control"
}
))
return_date = forms.DateField(
widget=forms.DateInput(
attrs={
'type': 'date',"class": "form-control",}
))
class Meta:
model = Issue
fields = ('student','isbn','quantity','issue_date','return_date',)
请帮忙插入数据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。