是否可以根据某些条件限制 models.ForeignKey() 字段中的条目?
customer = models.ForeignKey(Customer)
Run Code Online (Sandbox Code Playgroud)
我只需要显示处于活动状态的客户。
当我尝试添加内容或课程时出现此错误。它工作正常,现在我收到此错误。我已经将它上传到 heroku 并且它工作正常,只是在本地开发中它不会添加任何内容。有人可以解释一下出了什么问题。请还指定我应该添加哪些附加信息?
IntegrityError at /admin/course/course/add/
insert or update on table "django_admin_log" violates foreign key constraint "django_admin_log_user_id_fkey"
DETAIL: Key (user_id)=(2) is not present in table "auth_user".
Request Method: POST
Request URL: http://127.0.0.1:8888/admin/course/course/add/
Django Version: 1.5.1
Exception Type: IntegrityError
Exception Value:
insert or update on table "django_admin_log" violates foreign key constraint "django_admin_log_user_id_fkey"
DETAIL: Key (user_id)=(2) is not present in table "auth_user".
Exception Location: /home/vagrant/sai/local/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py in _commit, line 240
Python Executable: /home/vagrant/sai/bin/python
Python Version: 2.7.3
Run Code Online (Sandbox Code Playgroud) 项目结构:
??? db.sqlite3
??? manage.py
??? static
? ??? admin
? ??? css
? ??? img
? ??? js
??? abc1
? ??? admin.py
? ??? __init__.py
? ??? migrations
? ? ??? __init__.py
? ??? models.py
? ??? templates
? ? ??? abc1
? ? ??? homepage.html
? ? ??? css
? ? ??? img
? ? ??? js
? ??? tests.py
? ??? urls.py
? ??? views.py
??? abc2
??? functions.py
??? __init__.py
??? settings.py
??? urls.py
??? …Run Code Online (Sandbox Code Playgroud) 在管理区域中为模型定义添加视图和更改视图的字段集时,可以最小化这样的部分:
class User(admin.ModelAdmin):
fieldsets = (
('First Heading', {
'classes': ('collapse',),
'fields': ('one', 'two')
}),
('Second Heading', {
'fields': ('three',)
}),
)
Run Code Online (Sandbox Code Playgroud)
重要的一点是'classes': ('collapse',)。
我已将 TabularInline 对象添加到管理屏幕之一。基本上,当我编辑用户时,我可以看到他的朋友列表。
我希望 TabularInline 对象最初被折叠,类似于 'classes': ('collapse',).
我已经尝试向 TabularInine 类添加一个字段集元组,但它没有任何区别:
class Friends(admin.TabularInline):
model = Friend
fieldsets = (
('Friends', {
'classes': ('collapse',),
'fields': ('name',)
}),
)
Run Code Online (Sandbox Code Playgroud)
你能帮我吗?
谢谢你。
我的应用程序运行正常,但是当我尝试使用管理网址时,发生了此错误。我可以访问网站上除管理页面以外的所有页面。我的项目很小
mini.urls.py
from django.conf.urls import url,include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include('main.urls')),
url(r'^', include('signup.urls',namespace='signup')),
]
Run Code Online (Sandbox Code Playgroud)
main.urls.py
from django.conf.urls import url,include
from . import views
urlpatterns = [
url(r'^$', views.index,name='index'),
]
Run Code Online (Sandbox Code Playgroud)
signup.urls.py
from django.conf.urls import url,include
from . import views
urlpatterns = {
url(r'^signup/$', views.register, name='register'),
url(r'^login/$', views.login_user, name='login'),
url(r'^userpage/$', views.user_page, name='userpage'),
url(r'^upload/$', views.upload_file, name='upload'),
url(r'^logout/$', views.logout_user, name='logout'),
url(r'^(?P<uuid>[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]
{12})/$', views.doc_detail, name='detail'),
url(r'^(?P<uuid>[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]
{12})/decrypt/$', views.doc_decrypt,
name='docdecrypt'),
}
Run Code Online (Sandbox Code Playgroud)
我在/ admin /遇到的错误
TypeError at /admin/
'set' object …Run Code Online (Sandbox Code Playgroud) 我的模型如下所示:
from django.contrib.postgres.fields import ArrayField
class Trigger(models.Model):
solutions = ArrayField(models.TextField(blank=True, null=True), blank=True, null=True, help_text='some helpful text')
Run Code Online (Sandbox Code Playgroud)
这使我可以输入默认情况下用逗号分隔的解决方案列表。例如:我可以在该文本字段中输入:
1. watch out for dust.,
2. keep away from furry animals.,
Run Code Online (Sandbox Code Playgroud)
这确实创建了两个单独的字符串项目的列表。但是,如果解决方案文本本身包含逗号,例如:
1. cockroaches, polens and molds might be harmful.
Run Code Online (Sandbox Code Playgroud)
由于该句子中存在逗号,因此这将创建两个单独的解决方案行。
我如何告诉Django使用与逗号不同的定界符,因为它几乎肯定是句子的一部分。如何使用“ |”之类的分隔符?我查看了arrayfield类的内部,但是它不允许任何分隔符。
我知道:
class MFM(models.Model):
class Meta:
verbose_name = 'my fancy Model'
verbose_name_plural = 'my fancy Models'
Run Code Online (Sandbox Code Playgroud)
但是当我在 Django Admin 中编辑 MFM 时,它会显示“更改我喜欢的模型”。但我希望它说“我喜欢的模型上的设置”。
我有许多与模型具有ForeignKey关系的Person模型.例如:
class PersonData(BaseModel):
person = models.ForeignKey(Person)
data = models.TextField()
Run Code Online (Sandbox Code Playgroud)
我想锁定管理员,这样一旦PersonData创建了一个对象,管理员用户就可以更改数据,但无法更改Person.
起初它看起来很简单 - 我把它放在PersonDataAdmin课堂上:
def get_readonly_fields(self, request, obj=None):
if obj:
return self.readonly_fields + ('person',)
return self.readonly_fields
Run Code Online (Sandbox Code Playgroud)
在显示方面,这是按预期工作 - 我看到的值person,但它是灰色的所以我无法改变它 - 但是当我尝试更改数据并提交表单时,我收到一条错误消息, "请更正以下错误." 没有其他消息出现,但通过一些挖掘,我发现表单缺少必填person字段的值.
我已经研究了一个解决方案,它将涉及创建一个自定义表单,可以选择性地禁用这个字段(类似这个或这个),但是(a)我没有成功地使它工作,并且(b)它似乎是一个对于看起来更简单的情况的大量代码.我也考虑过使用exclude,但遇到了同样的问题read_only.
有关如何实现这一目标的任何想法?谢谢!
我已经在我的 Django 项目中安装了 Django Admin Sortable 2。我可以在管理员中看到拖放订单系统,但是当我移动某些对象时,订单不会被保存。移动对象时,我在终端日志中也看不到任何错误。
这是我的模型和管理 python 文件。我需要做任何额外的事情来保存订单吗?
模型.py
class QuickLink(models.Model):
title = models.CharField(max_length=20)
image = models.FileField(null=True, blank=False,upload_to='media/quick_links')
link = models.CharField(max_length=200)
order = models.PositiveIntegerField(default=0, blank=False, null=False)
def __str__(self):
return self.title
class Meta(object):
ordering = ['order']
Run Code Online (Sandbox Code Playgroud)
管理文件
from django.contrib import admin
from adminsortable2.admin import SortableAdminMixin
from .models import QuickLink
@admin.register(QuickLink)
class QuickLinksAdmin(SortableAdminMixin, admin.ModelAdmin):
pass
Run Code Online (Sandbox Code Playgroud)
我的版本如下:
姜戈 2.0.4
Python 3.6.1
Django Admin Sortable 2 0.6.19
我尝试迁移文件后出现此错误
PS C:\ djangoproject\src> python manage.py makemigrations Traceback(最近一次调用最后一次):文件"manage.py",第15行,在execute_from_command_line(sys.argv)文件"C:\ Program Files\Python36\lib\site-packages\django\core\management__init __.py",第371行,在execute_from_command_line utility.execute()文件"C:\ Program Files\Python36\lib\site-packages\django\core\management__init __.py",第347行,执行django.setup()文件"C:\ Program Files\Python36\lib\site-packages\django__init __.py",第24行,在安装程序apps.populate(settings.INSTALLED_APPS)文件"C:\ Program Files\Python36\lib\site-packages\django\apps\registry.py",第93行,填充"duplicates:%s"%app_config.label) django.core.exceptions.ImproperlyConfigured:应用程序标签不是唯一的,重复: AUTH
请帮忙.
python django django-admin django-authentication django-allauth