Django在提交表单时插入用户id(ForeignKey)
我正在努力想办法更新一个有外键的模型。我有一个名为companys的用户模型和一个companyesprofile模型,其中用户字段设置为companys模型的ForeignKey:Django在提交表单时插入用户id(ForeignKey),django,django-models,django-forms,Django,Django Models,Django Forms,我正在努力想办法更新一个有外键的模型。我有一个名为companys的用户模型和一个companyesprofile模型,其中用户字段设置为companys模型的ForeignKey: class Companies(User, PermissionsMixin): company = models.TextField(max_length=100, unique=True) tel = models.TextField(max_length=20) reg_nr = m
class Companies(User, PermissionsMixin):
company = models.TextField(max_length=100, unique=True)
tel = models.TextField(max_length=20)
reg_nr = models.TextField(max_length=50, unique=True)
vat = models.TextField(max_length=50)
class CompanyProfile(models.Model):
user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
logo = models.ImageField(blank=True)
street = models.TextField(max_length=256)
city = models.TextField(max_length=36)
postal_code = models.TextField(max_length=16)
country = models.TextField(max_length=36)
当公司注册时,它可以创建一个配置文件CompanyProfile
。我有一个表格:
class CompaniesProfileForm(forms.ModelForm):
class Meta:
model = CompanyProfile
fields = ('street', 'city', 'postal_code', 'country', 'logo')
还有一个观点:
class CreateProfile(CreateView, LoginRequiredMixin):
template_name = 'companies/profile.html'
form_class = CompaniesProfileForm
success_url = reverse_lazy('home')
每当提交视图中的表单时,我都会在/companys/profile处收到一个错误“integrityError”/
非空约束失败:公司\u公司profile.user\u id“
这可能是因为user
字段为空。我的问题是如何根据当前登录的用户自动填写用户
url.py
urlpatterns = [
path('register/', views.Register.as_view(), name='register'),
path('login/', auth_views.LoginView.as_view(template_name='companies/login.html'), name='login'),
path('logout/', auth_views.LogoutView.as_view(), name='logout'),
path('create/', views.CreateAds.as_view(), name='ads_create'),
path('profile/', views.CreateProfile.as_view(), name='profile_create'),
]