Phi*_*ipp 9 django python-3.x cookiecutter-django
我参考以下基于 Django 2.0 和cookiecutter -django 的 GitHub 存储库:github.com/Apfelschuss/apfelschuss/tree/c8851430201daeb7d1d81c5a6b3c8a639ea27b02
尝试运行应用程序时出现以下错误:
运行时错误:模型类 votes.models.Author 未声明显式 app_label 并且不在 INSTALLED_APPS 中的应用程序中。
这行代码出现错误。
我尝试按照/sf/answers/2814466301/ 中的描述进行操作,但没有成功:
配置/设置/base.py
LOCAL_APPS = [
"apfelschuss.votes.apps.VotesConfig"
]
Run Code Online (Sandbox Code Playgroud)
apfelschuss/votes/apps.py
from django.apps import AppConfig
class VotesConfig(AppConfig):
name = "apfelschuss.votes"
verbose_name = "Votes"
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?
如果有人对如何运行 repo 的 docker 容器感兴趣。它是在此处描述的。
mar*_*er_ 12
当它说“模型类 xxx 未声明显式 app_label”时,您的模型可以指定Meta
定义它们的app_label
. 您还可以自定义数据库表名称以及作为元数据一部分的其他选项。
你需要在你所有的模型上做这样的事情;
class Author(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
profile_picture = models.ImageField()
class Meta:
app_label = 'apfelschuss.votes'
def __str__(self):
return self.user.username
Run Code Online (Sandbox Code Playgroud)
编辑
我已经检查了你的 repo,我认为你通过将users
和votes
应用程序放在apfelschuss
.
我把它们拉到了项目的根目录,一切都运行得很顺利; https://github.com/marksweb/apfelchuss/tree/so/questions/55553252
这是 django/python 项目中比较典型的项目结构方法。
Phi*_*ipp 12
在视图中使用绝对导入解决了我的问题。我将.models更改为apfelschuss.votes.models。
导致运行时错误的代码:
from django.shortcuts import render
from .models import Voting
Run Code Online (Sandbox Code Playgroud)
绝对导入解决的问题:
from django.shortcuts import render
from apfelschuss.votes.models import Voting
Run Code Online (Sandbox Code Playgroud)
在此处查看 GitHub 上的提交。
归档时间: |
|
查看次数: |
16513 次 |
最近记录: |