如何使当前用户成为 Django 模型中的外键

JHall651

我使用 Django admin 作为客户端的仪表板(受限权限)。我允许他们通过管理站点添加新产品,并希望使用当前用户作为产品模型中的外键。我在 ProductAdmin 中使用“排除”,因此客户将无法选择更改它。当不使用“排除”时,用户是默认选择,它可以工作。当我包含“排除”时,表单返回一个错误,指出该字段为空。如何使当前用户成为 Products 模型中的外键,无论他们是通过管理表单添加项目还是通过 csv 上传?

这是我的产品型号:

#models.py
from django.db import models
from datetime import datetime
from django.contrib.auth.models import User

class Product(models.Model):
    client_id = models.ForeignKey(User, on_delete=models.DO_NOTHING)
    title = models.CharField(max_length=200)
    asin = models.CharField(max_length=200, blank=True)
    sku = models.CharField(max_length=200, blank=True)
    date_added = models.DateTimeField(default=datetime.now, blank=True)
    in_report = models.BooleanField(default=True)

    def get_queryset(self, request):
        qs = super().get_queryset(request)
        if request.user.is_superuser:
            return qs
        return qs.filter(client_id=request.user)

    def __str__(self):
        return self.title

#admin.py
from django.contrib import admin
from .models import Product

class ProductAdmin(admin.ModelAdmin):
    list_display = ('title', 'asin', 'sku', 'in_report')
    list_display_links = ('title', 'asin', 'sku')
    list_editable = ('in_report',)
    search_fields = ('title', 'asin', 'sku', 'in_report')
    list_per_page = 50
    exclude = ('client_id',)

admin.site.register(Product, ProductAdmin)
非编码器

我相信您想对用户隐藏 client_id,但是在通过 admin 保存/更改对象时,您希望当前用户被保存。

现在,当您exclude从 admin 获取 client_id,该字段将不会出现在表单中,这将引发错误,因为 client_id 是必填字段。因此您可以save_model将 admin方法重写为:

def save_model(self, request, obj, form, change):
    # associating the current logged in user to the client_id
    obj.client_id = request.user
    super().save_model(request, obj, form, change)

因此,每当更改/添加对象时,当前用户将被分配给 client_id.Hope 它会有所帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

django外键(用户)在模型中

来自分类Dev

如何在Django中模拟模型的外键模型?

来自分类Dev

如何使用外键在Django模型中执行注释?

来自分类Dev

如何从外键模型填充Django中的下拉列表

来自分类Dev

如何使用外键在Django模型中执行注释?

来自分类Dev

如何将当前活动用户作为外键添加到Django 3的任务模型中?

来自分类Dev

Django:使用当前用户作为项目模型的外键

来自分类Dev

django用户模型公司的外键

来自分类Dev

django用户模型公司的外键

来自分类Dev

更正 Django 用户模型外键问题

来自分类Dev

Django:如何将用户添加为模型中的外键

来自分类Dev

Python/Django:如何在 HTML 中同时显示主模型和“外键模型”

来自分类Dev

如何过滤 Django 模型以仅包含出现在子表(带有外键)中的模型?

来自分类Dev

如何将外键为 User 的模型表单保存到 Django 模型中

来自分类Dev

Django(模型):如何从外键获取实例

来自分类Dev

如何基于模型中的外键字段在django中开发下拉菜单

来自分类Dev

如何在Django中获取模型实例的外键表的名称?

来自分类Dev

如何在Django模型中设置外键字段以不返回任何值?

来自分类Dev

如何在Django模型中创建一个值为值或外键的字段?

来自分类Dev

如何在Django模板中制作包含两个与外键链接的模型的过滤摘要?

来自分类Dev

如何使用单个调用在Django模型中检索外键的数据?

来自分类Dev

如何在 Django 序列化程序中获取外键 ID 而不是引用模型

来自分类Dev

如何通过django REST中相关表的外键过滤模型对象

来自分类Dev

如何在django模型的外键字段中添加和更新数据

来自分类Dev

Django模型中的外键数组

来自分类Dev

Django模型:使用外键中的字段

来自分类Dev

Django模型外键中的属性错误

来自分类Dev

Django模型中的自动外键

来自分类Dev

Django模型中的外键数组

Related 相关文章

  1. 1

    django外键(用户)在模型中

  2. 2

    如何在Django中模拟模型的外键模型?

  3. 3

    如何使用外键在Django模型中执行注释?

  4. 4

    如何从外键模型填充Django中的下拉列表

  5. 5

    如何使用外键在Django模型中执行注释?

  6. 6

    如何将当前活动用户作为外键添加到Django 3的任务模型中?

  7. 7

    Django:使用当前用户作为项目模型的外键

  8. 8

    django用户模型公司的外键

  9. 9

    django用户模型公司的外键

  10. 10

    更正 Django 用户模型外键问题

  11. 11

    Django:如何将用户添加为模型中的外键

  12. 12

    Python/Django:如何在 HTML 中同时显示主模型和“外键模型”

  13. 13

    如何过滤 Django 模型以仅包含出现在子表(带有外键)中的模型?

  14. 14

    如何将外键为 User 的模型表单保存到 Django 模型中

  15. 15

    Django(模型):如何从外键获取实例

  16. 16

    如何基于模型中的外键字段在django中开发下拉菜单

  17. 17

    如何在Django中获取模型实例的外键表的名称?

  18. 18

    如何在Django模型中设置外键字段以不返回任何值?

  19. 19

    如何在Django模型中创建一个值为值或外键的字段?

  20. 20

    如何在Django模板中制作包含两个与外键链接的模型的过滤摘要?

  21. 21

    如何使用单个调用在Django模型中检索外键的数据?

  22. 22

    如何在 Django 序列化程序中获取外键 ID 而不是引用模型

  23. 23

    如何通过django REST中相关表的外键过滤模型对象

  24. 24

    如何在django模型的外键字段中添加和更新数据

  25. 25

    Django模型中的外键数组

  26. 26

    Django模型:使用外键中的字段

  27. 27

    Django模型外键中的属性错误

  28. 28

    Django模型中的自动外键

  29. 29

    Django模型中的外键数组

热门标签

归档