问题描述
首先,我一般不熟悉 Django 或 MVC 框架,而且我对 Python 的经验很少。
我已经阅读了具有类似标题的 stackoverflow 线程,但我还是遗漏了一些拼图。
尝试了一段时间后,这就是我最终得到的......它呈现空列表。我认为这是因为引用的表没有数据库条目。我似乎无法弄清楚如何根据另一个表中的 FK 评估值:
models.py
class Employees(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
def __str__(self):
return self.last_name
def get_absolute_url(self):
return reverse('employees')
class Tasks(models.Model):
type = models.CharField(max_length=30)
duration = models.IntegerField()
def __str__(self):
return self.type
def get_absolute_url(self):
return reverse('tasks')
class Records(models.Model):
employee_id = models.ForeignKey(Employees)
task_id = models.ForeignKey(Tasks)
date_from = models.DateTimeField()
date_to = models.DateTimeField()
def __str__(self):
return self.id
def get_absolute_url(self):
return reverse('records')
forms.py
class CreateRecordForm(forms.ModelForm):
employee_id = forms.ModelChoiceField(queryset=Records.objects.all().values('employee_id'))
task_id = forms.ModelChoiceField(queryset=Records.objects.all().values('task_id'))
date_from = forms.DateTimeField() #doesnt matter at the moment
class Meta:
model = Records
fields = ('employee_id','task_id','date_from')
views.py
class RecordCreateView(CreateView):
form_class = CreateRecordForm
template_name = 'record_new.html'
model = Records
#fields = ['employee_id','date_from']
下面的通用视图正确呈现下拉选择,所以它是可行的。
class RecordCreateView(CreateView):
template_name = 'record_new.html'
model = Records
fields = ['employee_id','date_from']
record_new.html
{% extends 'base.html' %}
{% block content %}
<h1>New record</h1>
<form action="" method="post">{% csrf_token %}
{{ form }}
<button class="btn btn-success ml-2" type="submit">save</button>
</form>
{% endblock content %}
非常感谢任何帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)