簡體   English   中英

如何將對象分配給特定用戶?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM