繁体   English   中英

尝试将项目添加到模型时出现 Django FileNotFoundError

[英]Django FileNotFoundError when trying to add an item to a model

我正在尝试使用 Django 和 python 创建一些模型。 我所有的模型都在工作,我可以向模型添加项目,除了我的用户模型。 任何人都可以建议它可能有什么问题吗?

模型.py

from django.db import models

# Create your models here.

class Item(models.Model):
    ID = models.IntegerField(auto_created=True, primary_key=True, unique=True)
    Name = models.CharField(max_length=30)
    Price = models.IntegerField()


class User(models.Model):
    ID = models.IntegerField(auto_created=True, primary_key=True)
    Nickname = models.CharField(max_length=50)
    Password = models.CharField(max_length=200)
    Mail = models.EmailField()
    Points = models.IntegerField()
    SaleItem = models.ForeignKey(Item, on_delete=models.CASCADE)
    ProfilePic = models.FilePathField()
    BannerPic = models.FilePathField()
    ZodiacSign = models.CharField(max_length=50)


class Friendship(models.Model):
    ID = models.IntegerField(auto_created=True, primary_key=True, unique=True)
    UserID = models.ManyToManyField(User, related_name="user")
    FriendID = models.ManyToManyField(User, related_name="befriended_user")


class ThreadPrivate(models.Model):
    ID = models.IntegerField(auto_created=True, primary_key=True, unique=True)
    Text = models.TextField()
    Sender = models.ForeignKey(User, on_delete=models.CASCADE, related_name="Sender")
    Receiver = models.ForeignKey(User, on_delete=models.CASCADE, related_name="Receiver")
    Time = models.DateTimeField(auto_now_add=True)


class Side(models.Model):
    ID = models.IntegerField(auto_created=True, primary_key=True, unique=True)
    Creator = models.ForeignKey(User, on_delete=models.CASCADE, related_name="creator_of_page")
    Time = models.DateTimeField(auto_now_add=True)


class ThreadPublic(models.Model):
    ID = models.IntegerField(auto_created=True, primary_key=True, unique=True)
    Text = models.TextField()
    Time = models.DateTimeField(auto_now_add=True)
    Sender = models.ForeignKey(User, on_delete=models.CASCADE, related_name="thread_sender")
    SideID = models.ForeignKey(Side, on_delete=models.CASCADE, related_name="side_for_thread")

和 admin.py

from django.contrib import admin
from .models import *
# Register your models here.

admin.site.register(Item)
admin.site.register(User)
admin.site.register(Friendship)
admin.site.register(ThreadPrivate)
admin.site.register(Side)
admin.site.register(ThreadPublic)

我记得在 settings.py 等中添加到应用程序中。 除 User 模型外,所有模型都有效。 有任何想法吗?

错误图片: 在此处输入图片说明

您必须提供用户模型的 FilePathField 的路径。 根据这个答案,你可以在你的设置中创建变量 FILE_PATH_FIELD_DIRECTORY 然后像这样使用它:

from django.conf import settings

class User(models.Model):
    ProfilePic = models.FilePathField(path=settings.FILE_PATH_FIELD_DIRECTORY)

将类的名称更改为 CustomUser 会很有帮助,这样您就不会将其与 django 中的 User 类混淆。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM