我想要一个ConfirmationField字段类型.我希望这个字段像布尔字段一样工作.我不需要将此信息存储在数据库中,而是希望将确认日期存储在单独的字段中.
class MyModel(models.Model):
confirmation = ConfirmationField()
m = MyModel()
m.confirmation # False
m.confirmation_timestamp # None
m.confirmation = True
m.save()
m.confirmation_timestamp # datetime object
m.confirmation = False
m.save()
m.confirmation_timestamp # None again
Run Code Online (Sandbox Code Playgroud)
我需要将两个字段都作为Field实例,我需要能够在Admin中使用它们.
我已阅读文档并检查代码,ForeignKey使用以下代码更改其数据库列名称:
def get_attname(self):
return '%s_id' % self.name
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何使用其余代码作为示例.看来我的目标并不需要太多的复杂性.
ImageField保存模型时,我还发现了保存的额外信息:
if self.field.width_field:
setattr(self.instance, self.field.width_field, self.width)
if self.field.height_field:
setattr(self.instance, self.field.height_field, self.height)
Run Code Online (Sandbox Code Playgroud)
但是我当然不希望confirmation自己存储在数据库中.因为(confirmation_timestamp- > confirmation)None== False和<datetime instance>==,我会造成冗余True.
任何指针/想法都表示赞赏.
谢谢.
编辑:目前看来这是不可能的.我最终改变了我的API.这是一个snipplet,让我知道我是如何做到的:
value …Run Code Online (Sandbox Code Playgroud) 我有一个模型Foo,它对User模型有一个ForeignKey.
之后,我需要获取所有用户的ID并将其放在列表中
foos = Foo.objects.filter(...)
l = [ f.user.id for f in foos ]
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,django从数据库中抓取整个User实例,而不是仅仅给出数字用户的id,它存在于每个Foo行中.
如何在不查询每个用户或使用select_related的情况下获取所有ID?
谢谢
我想让登录和注册的用户创建他将成为管理员的额外用户帐户.这些帐户将是与创建它们的用户绑定的特殊"下级"帐户.他应该能够添加/修改/删除这些帐户,就像Google应用程序管理员如何管理公司帐户一样(您是普通用户,但也创建/销毁其他用户.)
下级帐户无法创建/修改/删除帐户(除了更改自己的密码和正常的用户行为.)我正在为所有这些帐户使用django auth模型.在不使用任何管理代码的情况下,从我自己定制的网页中访问auth方法添加/修改/删除帐户的好方法是什么?
一个普通的物体,我可以用
o.__repr__()
Run Code Online (Sandbox Code Playgroud)
看到类似的东西
'<__main__.A object at 0x9d78fec>'
Run Code Online (Sandbox Code Playgroud)
但是,比方说,Django用户只会返回
<User:bob>
Run Code Online (Sandbox Code Playgroud)
如何查看其中一个的实际地址,或比较两个这样的模型对象是否实际上是同一个对象?
我有一个名为Foo的模型:
class Foo(models.Model):
name = models.CharField()
entry = models.DateField()
Run Code Online (Sandbox Code Playgroud)
我有两种类型的用户可以登录管理面板,常规和超级用户.我想禁止编辑/删除超过2天的Foo条目(通过使用输入日期字段),但超级用户可以不受任何限制地进行编辑.我怎样才能做到这一点?谢谢
我有以下型号:
class UserProfile(models.Model):
"""
User profile model, cintains a Foreign Key, which links it to the
user profile.
"""
about = models.TextField(blank=True)
user = models.ForeignKey(User, unique=True)
ranking = models.IntegerField(default = 1)
avatar = models.ImageField(upload_to="usermedia", default = 'images/js.jpg')
updated = models.DateTimeField(auto_now=True, default=datetime.now())
is_bot = models.BooleanField(default = False)
is_active = models.BooleanField(default = True)
is_free = models.BooleanField(default = True)
objects = ProfileManager()
def __unicode__(self):
return u"%s profile" %self.user
Run Code Online (Sandbox Code Playgroud)
还有经理
class ProfileManager(models.Manager):
"""
Stores some additional helpers, which to get some profile data
""" …Run Code Online (Sandbox Code Playgroud) 我想使用我的Django模型生成列表
说我有这些模型:
class AlarmServer(models.Model):
ip = models.IPAddressField()
Run Code Online (Sandbox Code Playgroud)
这样的清单
server_ips = [i.ipfor i in AlarmServer.objects.all()]
Run Code Online (Sandbox Code Playgroud)
似乎没有用,我在做什么错?
我正在尝试为我的项目编写测试用例。现在的问题是,我不知道如何在标头中传递自定义关键字参数。下面是我的测试用例类。
class ProjectTestClass(APITestCase,URLPatternsTestCase):
allow_database_queries: True
def projects_notifications_list(self,token,project_key):
url = reverse('projects:project_noti_list',kwargs={"category": "all"})
response = self.client.get(
url,
format='json',
HTTP_AUTHORIZATION="JWT "+token,
headers={"platform-subscriber-id":project_key}
)
print("data -> ",response.data)
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
self.assertEqual(len(response.data), 3)
Run Code Online (Sandbox Code Playgroud)
如您所见,我在标头中传递了 plaform-subsciber-id 。但收到错误 {'message': '标题中需要平台订阅者 id'}。看来 id 没有在标头中正确配置。有人知道这个吗?
python django django-models django-testing django-rest-framework
我正在尝试制作一个带有两个 API、配料和披萨的基本披萨应用程序。当我删除配料时,我希望相应的披萨也被删除,因为配料不再可用。就目前而言,当我删除配料时,它只会保留一个空的披萨对象。
楷模:
class Toppings(models.Model):
name = models.CharField(max_length=60, unique=True)
def __str__(self):
return self.name
class Pizza(models.Model):
name = models.CharField(max_length=60, unique=True)
topping = models.ManyToManyField(Toppings, max_length=60, related_name="toppings")
def __str__(self):
return (self.name, self.topping)
Run Code Online (Sandbox Code Playgroud)
序列化器:
class PizzaSerializer(serializers.ModelSerializer):
toppings = ToppingsSerializer(read_only=True, many=True)
class Meta:
model = Pizza
fields = "__all__"
class ToppingsSerializer(serializers.ModelSerializer):
class Meta:
model = Toppings
fields = "__all__"
Run Code Online (Sandbox Code Playgroud)
Pizza.views 和 Toppings.views 几乎相同,所以我只包含 Pizza。
class PizzaList(generics.ListAPIView):
queryset = Pizza.objects.all()
serializer_class = PizzaSerializer
class PizzaCreate(generics.CreateAPIView):
queryset = Pizza.objects.all()
serializer_class = PizzaSerializer
class PizzaUpdate(generics.UpdateAPIView):
queryset = Pizza.objects.all() …Run Code Online (Sandbox Code Playgroud) python django django-models django-views django-rest-framework
我创建了一个搜索功能。但是,它会搜索包含输入值的所有元素。例如,有以下元素:44564、76436、445。当我输入“445”时,它显示“44564”和“445”,但我只需要445。或者如果我输入“64”,那么什么都不应该显示,但显示“44564”和“76436”。如何修复它?
案例列表.html
<div>
<h3>Search</h3>
<form method="GET" action="{% url 'case_search' %}">
<input type="search" type="text" name="q" prequired placeholder="Put value">
<button type="submit">Find</button>
</form>
</div>
<div>
{% for case in object_list %}
<div>
<p>{{ case.name }}</p>
</div>
{% endfor %}
</div>
Run Code Online (Sandbox Code Playgroud)
视图.py
class CaseView(ListView):
model = Case
template_name = 'case_list.html'
class CaseSearch(ListView):
template_name = 'case_list.html'
def get_queryset(self):
return Case.objects.filter(name__icontains=self.request.GET.get("q"))
def get_context_data(self, *args, **kwargs):
context = super().get_context_data(*args, **kwargs)
context["q"] = self.request.GET.get("q")
return context
Run Code Online (Sandbox Code Playgroud)
网址.py
path('case_list/', CaseView.as_view(), name='case_list'),
path('case_list/search/', CaseSearch.as_view(), name="case_search"),
Run Code Online (Sandbox Code Playgroud) django django-templates django-models django-forms django-views
django ×10
django-models ×10
python ×4
django-admin ×3
django-views ×2
django-forms ×1
django-orm ×1