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)
我认为你应该做的是以下步骤:
if c.users.is_admin:
xyz = XYZ(
customer=c
user=c.users
)
xyz.save()
我认为你应该做的是以下步骤:
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用户我可以在这里应用任何筛选器?如果只需要添加管理员用户我可以在这里应用任何筛选器怎么办?