我有一个名为 WatchList 的模型,其中有一个名为 Listing 的对象,该对象通过外键对应于 Listings 模型。我希望能够通过 WatchList 模型进行查询,以获取用户特定监视列表上的所有列表,并在网页上显示所有列表的所有对象。我不想使用 ManyToMany 字段来执行此操作,因为我刚刚获得了处理 WatchList 模型的 Web 应用程序的不同部分。还有其他方法可以做到这一点吗?
视图.py
def watchlist(request):
watchlists = WatchList.objects.filter(user=request.user)
for listing in watchlists.listing:
listings_needed = watchlists.listing()
watchlist_listing = watchlists.get(listing)
listings = Listings.objects.all().filter(watchlist_listing)
return render(request, "auctions/watchlist.html",{
"listings": listings
})
Run Code Online (Sandbox Code Playgroud)
模型.py
class Listings(models.Model):
CATEGORY = [
("Miscellaneous", "Miscellaneous"),
("Movies and Television", "Movies and Television"),
("Sports", "Sports"),
("Arts and Crafts", "Arts and Crafts"),
("Clothing", "Clothing"),
("Books", "Books"),
]
title = models.CharField(max_length=64)
description = models.CharField(max_length=500)
bid = models.DecimalField(max_digits=1000000000000, decimal_places=2)
image = models.URLField(null=True, …Run Code Online (Sandbox Code Playgroud) 因此,我对我的项目进行了部署,在我的网络使用 HTTPS 后,Django 现在向我显示此错误:

它发生在我的登录页面之后:login.html
{% load i18n static bootstrap4 %}
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="{% static 'web_site/css/login.css' %}" />
<script src="https://code.jquery.com/jquery-3.6.0.min.js"
integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<script src="{% static 'web_site/js/login.js' %}"></script>
</head>
<body>
<div class="wrapper">
<div class="container">
<h1>Welcome</h1>
{% if context %}
<ul class="messages">
<li class="error">{{ context }}</li>
</ul>
{% endif %}
<form class="form" action="" method="post">
{% csrf_token %}
{% bootstrap_form form %}
<button type="submit" id="login-button">Login</button>
</form>
</div>
<ul class="bg-bubbles">
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li> …Run Code Online (Sandbox Code Playgroud) 我想在 Django 中定义一个 6 位数字邮政编码models.py。
起初,我尝试过这个;
postal_code = models.PositiveIntegerField(blank=False)
但是,邮政编码可以有前导零,例如000157。PositiveIntegerField 不适合它。
如果我使用CharField,该字段可以接受对邮政编码无效的字母。
如何在 django models.py 中定义 6 位数字邮政编码?
我正在使用 Django v4。
现在我已经应用了这段代码
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
class MyUserAdmin(UserAdmin):
def get_fieldsets(self,request,obj=None):
if not obj:
return self.add_fieldsets
if request.user.is_superuser:
perm_fields = ('is_active','is_staff','is_superuser','groups','user_permissions')
return [(None, {'fields': ('email', 'password')}),
('Personal info', {'fields': ('first_name', 'last_name')}),
('Permissions', {'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions')}),
('Important dates', {'fields': ('last_login', 'date_joined')}),
('Contact info', {'fields': ('contact_no',)})]
else:
perm_fields = ('is_active','is_staff')
return [(('Creds'),{'fields':('username','password')}),
(('Personal info'),{'fields':('first_name','last_name','email')})]
admin.site.unregister(User)
admin.site.register(User,MyUserAdmin)
Run Code Online (Sandbox Code Playgroud)
但我希望员工用户看不到任何超级用户。因此在这种情况下,staffuser 只能查看 1 个“新”用户和“admin”用户(超级用户),应隐藏
我怎样才能做到这一点 ?
from ast import Delete
from email.policy import default
from django.db import models
from django.contrib.auth.models import User
class Video(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
title=models.CharField(max_length=100, null=False)
description=models.TextField(max_length=1000,null=True)
video=models.FileField(upload_to="video/%y",null=False)
def __str__(self):
return self.title
class Euser(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
phone = models.CharField(max_length=10,null=True)
birthdate = models.DateField(null=True,)
profile_pic = models.ImageField(null=True, )
cover_pic = models.ImageField( null=True, upload_to="images/%y")
def __str__(self):
return self.phone
Run Code Online (Sandbox Code Playgroud)
如果不指定默认值,则不可能将不可为空的字段“id”添加到视频中。这是因为数据库需要一些东西来填充现有的行。请选择修复:
出现此错误...请建议我该怎么办
我试图弄清楚class Meta:Django 到底做了什么。
我在 DRF 中遇到了下面的代码,但不确定为什么下面class Meta:有model = User和fields = [...]。对创建数据库有帮助吗?
from django.contrib.auth.models import User, Group
from rest_framework import serializers
class UserSerializer(
serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ['url', 'username', 'email', 'groups']
Run Code Online (Sandbox Code Playgroud)
与class Meta:Django 中使用的有什么不同,如下所示。
from django.db import models
class Ox(models.Model):
horn_length = models.IntegerField()
class Meta:
ordering = ["horn_length"]
verbose_name_plural = "oxen"
Run Code Online (Sandbox Code Playgroud)
我试图从 Django 和 DRF 文档中获得进一步的理解,但是我没有看到DRF的解释model = ...和使用。fields = [...]class Meta
metadata class django-models django-views django-rest-framework
我正在构建一个项目(使用 django),向代理发放电话。当手机损坏时,代理商会将手机发送到总部进行维修。与此同时,该代理又获得了另一部不同的电话。手机修好后,就会发给另一个可能与第一个代理商有类似问题的代理商。电话和代理之间的关系是什么?请记住,我想保留电话所有权的历史记录,并避免出现“ Phonex with imeiXXXXX and Phone.Status=active is current is more than one Agent is using”的数据
我仍处于计划阶段,但我无法破解这个
我没什么问题.我有像Project和Member这样的模型.每个项目都有成员.在模板中,我想展示用户及其在特定项目中的角色.它有效,但它向我展示了角色的数量.我希望将人类可读的价值显示为"业务分析师"等我如何才能获得这些价值观?
models.py:
class Project(models.Model):
members = models.ManyToManyField(User, through='Member', help_text=_('Members'))
class Member(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
project = models.ForeignKey(Project, on_delete=models.CASCADE)
role = models.CharField(max_length=20, choices=ROLE_CHOICES)
ROLE_CHOICES = (
('1', _('Manager')),
('2', _('Developer')),
('3', _('Business Analyst')),
('4', _('System Analyst')),
)
Run Code Online (Sandbox Code Playgroud)
模板:
{% for member in project.member_set.all %}
<tr>
<td class="text-center">{{ member.user }}</td> <-- Example: Mark
<td class="text-center">{{ member.role }}</td> <-- Example: 3 but I need Business Analyst
</tr>
{% endfor %}
Run Code Online (Sandbox Code Playgroud) 我有一个简单的国家和城镇模型:
from django.db import models
class Country(models.Model):
name = models.CharField(max_length=50)
class Town(models.Model):
belongs_to = models.ForeignKey(country, on_delete=models.CASCADE)
name = models.CharField(max_length=50)
Run Code Online (Sandbox Code Playgroud)
现在,我想稍微玩一下...,我想补充大陆。我想从一开始的正确方法就是这样做:
from django.db import models
class Continent(models.Model):
name = models.CharField(max_length=50)
class Country(models.Model):
belongs_to = models.ForeignKey(continent, on_delete=models.CASCADE)
name = models.CharField(max_length=50)
class Cown(models.Model):
belongs_to = models.ForeignKey(country, on_delete=models.CASCADE)
name = models.CharField(max_length=50)
Run Code Online (Sandbox Code Playgroud)
如果我这样做并保存文件,则在admin.py中将大洲添加到admin.site.register(continent),从makemigrations开始...我得到了:
您正在尝试将不属于国家的不可为空的字段添加到国家/地区,而没有默认设置;我们无法做到这一点(数据库需要某种方式来填充现有行)。请选择一个修复程序:
1.)现在提供一个一次性默认值(将在所有现有行上设置此列的空值)2.)退出,然后让我在models.py中添加默认值
我被困在这里,因为我不知道从这里做什么?
我已经达到了Mozilla Django教程的第4章,但后来我遇到了这个错误.我按照它说的所有内容进行了操作,但是当我尝试从管理面板打开BookInstance模型时,它给了我这个错误:
/ admin/catalog/bookinstance /'NoneType'对象中的AttributeError没有属性'id'
这是我的代码,models.py(我突出显示了发生错误的部分):
from django.db import models
from django.core.urlresolvers import reverse
class Book(models.Model):
"""
Model representing a book (but not a specific copy of a book).
"""
title = models.CharField(max_length=200)
author = models.ForeignKey('Author', on_delete=models.SET_NULL, null=True)
# Foreign Key used because book can only have one author, but authors can have multiple books
# Author as a string rather than object because it hasn't been declared yet in file.
summary = models.TextField(max_length=1000, help_text="Enter a …Run Code Online (Sandbox Code Playgroud) django-models ×10
django ×9
python ×6
django-views ×3
python-3.x ×3
class ×2
csrf-token ×1
database ×1
django-admin ×1
django-csrf ×1
metadata ×1
web ×1