在我的模型work_allocation下,我有一個欄位叫做activity_name。堡所有的activity_name都有相關的子欄位,如圖所示
在views.py中,我寫了一個簡單的基于類的視圖來列出活動任務(get_task_list),它作業得很好。但是我無法看到相關的子欄位。
不知道我應該做什么修改才能做到這一點。下面是我的專案細節:
models.py
from django.db import models
class Status_Code(models.Model) 。
Types = models.CharField(max_length=50, blank=True)
def __str__(self) 。
return self.Types.
class Assignee_Name(models.Model) 。
emp_name = models.CharField(max_length=50, blank=True)
def __str__(self) 。
return self.emp_name
class Priority(models.Model) 。
priority = models.CharField(max_length=50, blank=True)
def __str__(self) 。
return self.priority
class work_allocation(models.Model) 。
activity_name = models.CharField(max_length=100)
JIRA_tkt = models.CharField(max_length=100)
Assignee_name = models. ForeignKey(Assignee_Name, on_delete=models.CASCADE)
Status_code = models. ForeignKey(Status_Code, on_delete=models.CASCADE)
Description = models.TextField()
Planned_start_date = models.DateField(auto_now_add=True)
Planned_end_date = models.DateField(auto_now_add=True)
actual_start_date = models.DateField(auto_now_add=True)
actual_end_date = models.DateField(auto_now_add=True)
priority = models.ForeignKey(Priority,on_delete=models.CASCADE)
def __str__(self):
return self.activity_name
views.py
def createTask(request):
if request.method == 'POST':
form = Work_alloc_Form(request.POST)
如果form.is_valid()。
data_to_db = work_allocation()
data_to_db.activity_name = form.cleaned_data['activity_name']
data_to_db.JIRA_tkt = form.cleaned_data['JIRA_tkt']
data_to_db.Assignee_name = form.cleaned_data['Assignee_name']
data_to_db.Status_code = form.cleaned_data['Status_code']
data_to_db.Planned_start_date = form.cleaned_data['Planned_start_date']
data_to_db.Planned_end_date = form.cleaned_data['Planned_end_date']
data_to_db.actual_start_date = form.cleaned_data['actual_start_date']
data_to_db.actual_end_date = form.cleaned_data['actual_end_date']
data_to_db.Description = form.cleaned_data['Description']
data_to_db.priority = form.cleaned_data['priority']
data_to_db.save()
messages.success(request, f'個人資料已成功更新')
return redirect('/home')
否則。
messages.error(request, AttributeError)
否則。
form = Work_alloc_Form()
return render(request, 'tasks/create_work_allocation.html'/span>, context={'form': form})
class get_task_list(ListView):
model = work_allocation
例如,在具有GET視圖的網頁上,我應該看到 "新任務 "及其相關欄位,如JIRA、受讓人姓名、狀態代碼等。
我希望我的問題已經很清楚了。
請建議
uj5u.com熱心網友回復:
由于你已經為每個類定義了__str__,我們需要做的只是為ListView創建一個HTML模板并相應地顯示每個欄位。
假設我們有兩條記錄:
>>> from my_app.models import *
>>> for item in work_allocation.objects.values() 。
... print( item)
...
{'id': 1, ' activity_name': 'new task', 'JIRA_tkt': '1234', 'Assignee_name_id': 1, 'Status_code_id': 1, 'Description': 'qwerty', 'Planned_start_date': datetime. date(2021, 9, 20), 'Planned_end_date': 日期時間。 date(2021, 9, 20), 'actual_start_date': 日期時間。 date(2021, 9, 20), 'actual_end_date': 日期時間。 date(2021, 9, 20), 'premium_id': 1}。
{'id': 2, ' activity_name': '另一個任務', 'JIRA_tkt': '56', 'Assignee_name_id': 2, 'Status_code_id': 2, 'Description': 'asd', 'Planned_start_date': datetime. date(2021, 9, 20), 'Planned_end_date': 日期時間。 date(2021, 9, 20), 'actual_start_date': 日期時間。 date(2021, 9, 20), 'actual_end_date': 日期時間。 date(2021, 9, 20), 'premium_id': 2}。
現在,創建一個檔案my_app/templates/my_app/work_allocation_list.html
{% for item in object_list %}。
<hr/>/span>
{{ item.activity_name }}<br/gt;/span>
{{ item.JIRA_tkt }}}<br/>/span>
{{ item.Assignee_name }}}<br/>
{{ item.Status_code }}<br/>
{% endfor %}
<hr/>{% endfor %}。
ListView將自動使用它來呈現work_allocation物件的串列:
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/323525.html
標籤:


