我有一份在网站上工作的员工名单。每个站点都由用户拥有(使用Django的标准用户模型)。
我想创建一个添加员工的表单,并根据经过身份验证的用户自动将其链接到某个站点:
models.py:
data
views.py:
class Employee(models.Model):
site = models.ForeignKey(Site, null=True)
employee_name = models.CharField(default='name', max_length=128, blank=False, null=False)
class Site(models.Model):
user = models.ForeignKey(User)
site_name = models.CharField(max_length=128, blank=False, null=False)
forms.py:
site_profile = Site.objects.get(user=request.user)
if request.method == "POST":
form = EmployeeAddForm( request.POST )
if form.is_valid():
obj = form.save(commit=False)
obj.site = site_profile
obj.save()
return redirect('dashboard_home')
form = EmployeeAddForm()
return render(request, "dashboard/employees.html", {'form': form })
此代码会将员工添加到数据库,但在django admin中,class EmployeeAddForm(forms.ModelForm):
class Meta:
model = Employee
fields = ( 'employee_name')
导致list_display = 'site'
不是实际的站点名称。员工似乎没有链接到该网站。
如果我使用Site object
(添加obj.site = site_profile.id
),则会收到错误.id
答案 0 :(得分:0)
发现错误:上面的代码是正确的,我只是在我的网站modeL
中有一个标签排序错误class Site(models.Model):
...
def __str__(self):
return self.site_name
def
应该已插入1个标签页。