【问题标题】:Unable to connect model to user in django无法将模型连接到 django 中的用户
【发布时间】:2020-09-27 19:57:35
【问题描述】:

所以我有一个名为文件夹的模型,我想在 HomeView 上显示当前用户创建的所有文件夹,但不知何故它不起作用,我认为文件夹没有连接到创建它们的用户。

models.py

from django.db import models
from django.contrib.auth.models import User
from django.db.models.deletion import CASCADE
from django.core.validators import MinValueValidator
from django.core.exceptions import PermissionDenied

# The Folders Model.

class Folder(models.Model):
    name = models.CharField(max_length = 250)
    parent = models.ForeignKey('self', on_delete = CASCADE, null = True, blank = True )
    cr_date = models.DateTimeField(auto_now_add = True)
    user = models.OneToOneField(to=User, on_delete=CASCADE, null=True, blank=True)
    def __str__(self):
        return "%s" % self.name

view.py 类 HomeView(模板视图): template_name = "ahmed_drive/home.html"

def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)
    user = self.request.user
    home_folders = Folder.objects.filter(user=user).order_by('-cr_date')
    home_files = Fileshare.objects.filter(uploaded_by=user).order_by('-id')
    context['home_folders'] = home_folders
    context['home_files'] = home_files
    return context



@method_decorator(login_required, name="dispatch")    
class FolderCreate(CreateView):
    model = Folder
    fields = ["name", "parent"]
    def formvalid():
        if form.is_valid():
            form.save()
            return redirect('home.html')
        else :
            return render(request,{'form': form})

home.html

{% extends 'base.html' %}
{% block content %}

{% for Folder in home_folders %}
<h1> {{Folder.name}} </h1>
{% endfor %}

{% endblock %}

【问题讨论】:

  • 显示创建新文件夹的代码
  • @AndreyMaslov 嗨,我已经用文件夹的 createview 编辑了我的问题,请看一下

标签: django django-models


【解决方案1】:

当您创建文件夹时,您不会将用户连接到它。 您需要在保存表单之前执行此操作

def form_valid(self, form):
    folder = form.save(commit=False)
    folder.user = request.user
    folder.save()
    return redirect('home.html')

【讨论】:

    猜你喜欢
    • 2012-03-31
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 2021-05-22
    相关资源
    最近更新 更多