[英]How to assign objects to specific user?
我正在使用 Django 開發任務應用程序,我想將任務分配給創建它的用戶。
應用程序 model:
class Task(models.Model):
title = models.CharField(max_length=200)
content = models.TextField(blank=True)
pub_date = models.DateField(default=timezone.now().strftime("%Y-%m-%d"))
due_date = models.DateField(default=timezone.now().strftime("%Y-%m-%d"))
completed = models.BooleanField(default=False)
completed_date = models.DateField(blank=True, null=True)
created_by = models.ForeignKey(
settings.AUTH_USER_MODEL,
null=True,
blank=True,
on_delete=models.CASCADE,
)
class Meta:
ordering = ["-pub_date"] # Ordering by the pub date field
def __str__(self):
return self.title
應用程序視圖:
class TaskListView(LoginRequiredMixin, ListView):
model = Task
template_name = 'task_list.html'
login_url = 'login'
class TaskCreateView(LoginRequiredMixin, CreateView):
model = Task
template_name = 'task_create.html'
fields = ('title', 'content')
login_url = 'login'
def get_success_url(self):
return reverse('task_list')
class TaskUpdateView(LoginRequiredMixin, UpdateView):
model = Task
template_name = 'task_update.html'
fields = ('title','content',)
login_url = 'login'
def get_success_url(self):
return reverse('task_list')
class TaskDeleteView(DeleteView):
model = Task
template_name = 'task_delete.html'
success_url = reverse_lazy('task_list')
任何幫助都會對我有所幫助,因為我只是一個初學者:D
在創建視圖中,定義一個新的 function:
def form_valid(self, form):
form.instance.create_by = self.request.user
form.instance.update_by = self.request.user # this is for the update view.
return super().form_valid(form)
另一個小提示:
def get_success_url(self)
在您的情況下可能只是success_url = reverse('task_list')
(作為 class 變量),因為無論如何您都不會在 function 中使用self
。
另一個小提示:
如果您在 settings.py 中定義LOGIN_REDIRECT_URL = '/'
、 LOGIN_URL = '/login/'
和LOGOUT_REDIRECT_URL = '/login/'
,則無需在每個視圖中放置login_url = 'login'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.