【发布时间】:2021-04-05 05:41:17
【问题描述】:
我有两个模型:
class MasterData(models.Model):
ID = models.AutoField(primary_key=True)
Companyname = models.CharField('Companyname', max_length=128, blank=True, null=True)
UserID = models.IntegerField('UserID')
class Prefixes(models.Model):
ID = models.AutoField(primary_key=True)
UserID = models.ForeignKey('MasterData', on_delete=models.CASCADE)
InvoiceNoPrefix = models.CharField('InvoiceNoPrefix', max_length=5, blank=True, null=True)
不,在我看来,我希望创建一个简单的 objects.get_or_create 如果您第一次访问该站点并且如果它创建一个不存在任何记录。
@login_required(login_url='/backend/')
def edit_prefixes(request):
user_id = request.user.id
userfrommasterdata = MasterData.objects.filter(UserID__in=user_id)
prefixes_data = Prefixes.objects.get_or_create(UserID=userfrommasterdata)
我得到的只是一个:'int' object is not iterable
我错过了什么?在我的 MasterData 视图中,它运行良好:
@login_required(login_url='/backend/')
def edit_masterdata(request):
user_id = request.user.id
# stamdata_data = get_object_or_404(Stamdata, pk=user_id)
stamdata_data, _ = MasterData.objects.get_or_create(UserID__iexact=user_id, UserID=user_id)
【问题讨论】:
-
您需要用方括号将用户 ID 括起来:
userfrommasterdata = MasterData.objects.filter(UserID__in=[user_id])
标签: django django-models django-views django-queryset