我的模特班:
class Campaign(models.Model):
name = models.CharField(max_length=255)
campaign_id = models.CharField(max_length=8, null=False, blank=False, unique=True)
def __init__(self):
super(Campaign, self).__init__(self)
self.campaign_id = generate_random_id(8) # it generates just random string
class Meta:
ordering = ["name"]
def __str__(self):
return self.name
我的观点课:
def campaign_list(request):
campaigns = Campaign.objects.order_by('name').all()
return render(request, 'mp/campaign/list.html', {'campaigns': campaigns})
我搞错了
init()采用一个位置参数,但给出了6个
在我的模型中创建init之前,一切都很好。但我假设现在Campaing.object.all()使用的是构造函数,而不是str。我怎么能忽略这一点,而在.all中仍然只使用引用名称,而不是再次创建对象?
发布于 2022-07-27 19:28:33
为什么会发生这样的事情
我得到了以下错误:
Response.__init__() take one positional argument but 2 were given
考虑下面的示例:在function
中使用views.py
和returning
-- Response
但是当我在visual studio
中使用visual studio
扩展时
我不小心从requests
模块而不是rest_framework
导入了rest_framework
类
# example
from requests import Response
#from rest_framework.response import Response
def hello_world_view(request):
return Response('ok')
来自请求模块的响应类
有一个位置参数
响应类来自rest_framework
可以有多个位置参数
发布于 2021-08-24 18:09:59
它可以将*args、**kwargs作为参数传递到init中。
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) # dont have to pass self
self.campaign_id = generate_random_id(8) # it generates just random string
您还可以重写save方法。
def save(self, *args, **kwargs):
self.campaign_id = generate_random_id(8)
super().save(*args, **kwargs)
发布于 2021-08-24 18:08:57
重写保存方法,而不是初始化程序:
class Campaign(models.Model):
name = models.CharField(max_length=255)
campaign_id = models.CharField(max_length=8, unique=True)
def save(self, *args, **kwargs):
self.campaign_id = generate_random_id(8)
super().save(*args, **kwargs)
class Meta:
ordering = ["name"]
def __str__(self):
return self.name
https://stackoverflow.com/questions/68912049
复制相似问题