簡體   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