我正在使用Foregin Key。在下拉菜单中,我传递Foregin键值。在表中存储数据时,我得到示例错误
我尝试从关系表中获取数据并传递该ID。
models.py
class Contacts(models.Model): #client's point of contact
user = models.ForeignKey(User, on_delete=models.CASCADE)
client = models.ForeignKey(Client, on_delete=models.CASCADE)
name = models.CharField(max_length=100)
email = models.EmailField(max_length=100)
phone = models.CharField(max_length=100)
mobile = models.CharField(max_length=100)
role = models.CharField(max_length=100)
title = models.CharField(max_length=100)
views.py
def add_contacts(request):
if request.method == "POST":
user_dt = request.POST['user']
client_dt = request.POST['client']
client = request.POST['client']
name = request.POST['name']
email = request.POST['email']
phone = request.POST['phone']
mobile = request.POST['mobile']
role = request.POST['role']
title = request.POST['title']
print(user,client,name,email,phone,mobile,role,title)
data = Contacts.objects.create(user=user,client=client,name=name,email=email,phone=phone,mobile=mobile,role=role,title=title)
print(data)
return redirect('contacts')
2条答案
按热度按时间6kkfgxo01#
也许你可以这样做:
一旦
user
和client
是Contacts
模型上的外键,你就可以像上面一样直接解析id
了。另一个建议是使用
get
dict函数,以避免一些KeyErrors
。我的意思是:t40tm48m2#
这是因为
Model
需要user
和client
的示例对象,因为这两个字段都是外键,所以你必须检索它们来创建你的Contacts
对象(例如:Client.objects.get(pk=client)
)。从外观上看(分别检索每个字段),您没有使用Django
forms
。有了这么多的字段和嵌套对象,我会考虑创建一个,让框架来完成它的工作,下面是一个使用ModelForm
的例子:forms.py
views.py
add_contact.html
urls.py