【发布时间】:2019-08-07 22:51:22
【问题描述】:
我想将Passengers模型的用户名字段分配给当前登录用户的用户名。我好像做不到。下面是代码。
模型.py
class UserProfileInfo(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE)
profile_pic = models.ImageField(upload_to='profile_pics',blank=True)
def __str__(self):
return self.user.username
class Passengers(models.Model):
username = models.CharField(max_length = 100)
passenger_firstname = models.CharField(max_length = 100)
passenger_lastname = models.CharField(max_length = 100)
passenger_age = models.CharField(max_length = 100)
passenger_gender = models.CharField(max_length=6, choices=GENDER_CHOICES, default='female')
froms.py
class PassengerForm(forms.ModelForm):
class Meta():
model = Passengers
fields = (
'passenger_firstname',
'passenger_lastname',
'passenger_age',
'passenger_gender')
views.py
def passenger_info(request):
if request.method == "POST":
passenger_details = PassengerForm(data=request.POST)
if passenger_details.is_valid():
passenger_details.username = request.user
passenger_details.save()
else:
passenger_details = PassengerForm()
return render(request,'passenger_info.html',{'passenger_details':passenger_details})
没有打印出错误消息,但它使用户名字段留空,如下所示:
【问题讨论】:
-
你不应该这样做。只要有一个从乘客到用户的外键。
-
谢谢。我这样做了。但是,将passenger.username 分配给当前登录用户的用户名的那一行代码是什么?因为使用当前设置,它给我一个错误“NOT NULL 约束失败”。
标签: django django-models django-forms django-views django-admin