Python Django关于创建现有用户及其数据的新模型存储记录

Python Django关于创建现有用户及其数据的新模型存储记录,python,sql,django,django-models,Python,Sql,Django,Django Models,我创建了一个模型客户: class Customer(models.Model): name = models.CharField(max_length=20, db_index=True) address = models.CharField(max_length=100, blank=True) email = models.EmailField(max_length=100, blank=True) users = models.ManyToManyFiel

我创建了一个模型客户:

class Customer(models.Model):
    name = models.CharField(max_length=20, db_index=True)
    address = models.CharField(max_length=100, blank=True)
    email = models.EmailField(max_length=100, blank=True)
    users = models.ManyToManyField(User, db_index=True)
    phone = models.IntegerFeild(max_length=100, blank=True)
以及一个名为XYZ的新模型:

class XYZ(models.Model):
        customer = models.OneToOneFieldOneToOneField(Customer, on_delete=models.CASCADE)
        abc = models.CharField(max_length=10, default='x')
        user = models.OneToOneField(User, on_delete=models.CASCADE)

如何将数据插入现有客户的XYZ表中,而不在查询中手动使用
insert
?是否有Django查询或方法在XYZ表中插入现有客户记录?

这里有一种方法,因为不清楚XYZ中的数据是如何存储的,所以我假设为静态值

进入django shell。您可以通过运行
python manage.py shell

现在导入您的模型

from yourapp.models import Customer, XYZ
同时导入您的
用户
型号

从django.contrib.auth.models导入用户

获取要添加的用户对象

user = User.objects.get(username='your_username')
如果你想要管理员,你可以这样做

superusers=User.objects.filter(is_superuser=True)
#这将获取您网站的所有管理员。但请注意,如果您的站点有多个管理员,则这是一个查询集(即用户对象列表)

现在,您可以在
XYZ
表中为每个客户对象创建一个条目

最后,根据您的需求,您可以运行此循环

for customer in Customer.objects.all():
    XYZ.objects.create(customer=customer, abc="your string", user=user)

这里有一种方法,因为不清楚如何存储来自
XYZ
的数据,所以我假设为静态值

进入django shell。您可以通过运行
python manage.py shell

现在导入您的模型

from yourapp.models import Customer, XYZ
同时导入您的
用户
型号

从django.contrib.auth.models导入用户

获取要添加的用户对象

user = User.objects.get(username='your_username')
如果你想要管理员,你可以这样做

superusers=User.objects.filter(is_superuser=True)
#这将获取您网站的所有管理员。但请注意,如果您的站点有多个管理员,则这是一个查询集(即用户对象列表)

现在,您可以在
XYZ
表中为每个客户对象创建一个条目

最后,根据您的需求,您可以运行此循环

for customer in Customer.objects.all():
    XYZ.objects.create(customer=customer, abc="your string", user=user)

我认为你应该做的是以下步骤:

  • python manage.py shell

  • 查询所有客户

    从path.to.your.models导入客户

    customers=Customer.objects.filter(用户=

  • 插入所有XYZ

    对于c in客户:

    if c.users.is_admin:
        xyz = XYZ(
            customer=c
            user=c.users
            )
        xyz.save()
    

  • 我认为你应该做的是以下步骤:

  • python manage.py shell

  • 查询所有客户

    从path.to.your.models导入客户

    customers=Customer.objects.filter(用户=

  • 插入所有XYZ

    对于c in客户:

    if c.users.is_admin:
        xyz = XYZ(
            customer=c
            user=c.users
            )
        xyz.save()
    

  • 您想要XYZ的一些默认值?@VineethSai添加了默认值。您想要XYZ的一些默认值?@VineethSai添加了默认值。如何传递未定义的request.user?很抱歉,您还需要导入用户模型并获取该条目的特定用户。我更新了我的客户模型,现在该模型中有了用户r客户对象通过
    customer
    变量在for循环中可用。从那里获取您想要的用户。然后在
    XYZ
    中更新它。如果只需要添加管理员用户,我可以在这里应用任何筛选器。如何传递请求。未定义的用户?很抱歉,您也需要导入用户模型并获取specific该入口的用户我更新了我的客户模型,现在它有了用户组。所有客户对象都可以通过
    customer
    变量在for循环中使用。从那里获取您想要的用户。然后在
    XYZ
    中更新它。如果只需要添加管理员用户,我可以在这里应用任何筛选器?如果只需要添加管理员,该怎么办n用户我可以在这里应用任何筛选器?如果只需要添加管理员用户我可以在这里应用任何筛选器怎么办?