Python 如何在mysql/django中添加一个仅限于一行的表?
我正在为一个小项目使用Django,我想制作一个包含一行的表,在其中添加项目描述。我只需要一行,不需要更多,因为这是整个站点的一个描述,我不希望用户能够添加多个描述。是的,可以这样做。 假设您的模型是MyDescModelPython 如何在mysql/django中添加一个仅限于一行的表?,python,mysql,django,database,Python,Mysql,Django,Database,我正在为一个小项目使用Django,我想制作一个包含一行的表,在其中添加项目描述。我只需要一行,不需要更多,因为这是整个站点的一个描述,我不希望用户能够添加多个描述。是的,可以这样做。 假设您的模型是MyDescModel class MyDescModel(models.Model): desc = models.CharField('description', max_length=100) def has_add_permission(self): return not
class MyDescModel(models.Model):
desc = models.CharField('description', max_length=100)
def has_add_permission(self):
return not MyDescModel.objects.exists()
现在你可以称之为
MyDescModel.has_add_permission()
打电话之前
MyDescModel.save()
希望这有帮助。我用下面的代码解决了这个问题
Class Aboutus(models.Model):
....
def save(self):
# count will have all of the objects from the Aboutus model
count = Aboutus.objects.all().count()
# this will check if the variable exist so we can update the existing ones
save_permission = Aboutus.has_add_permission(self)
# if there's more than two objects it will not save them in the database
if count < 2:
super(Aboutus, self).save()
elif save_permission:
super(Aboutus, self).save()
def has_add_permission(self):
return Aboutus.objects.filter(id=self.id).exists()
关于类(models.Model):
....
def保存(自我):
#count将拥有Aboutus模型中的所有对象
count=Aboutus.objects.all().count()
#这将检查变量是否存在,以便我们可以更新现有的变量
save_permission=Aboutus.has_add_permission(self)
#如果有两个以上的对象,则不会将它们保存在数据库中
如果计数小于2:
super(Aboutus,self).save()
elif保存权限:
super(Aboutus,self).save()
def具有添加权限(自我):
返回Aboutus.objects.filter(id=self.id).exists()
你是否试图实现类似的目标?@JamieBull不,不是!我问了很多问题,但我回答不了!别再投票给我了!!!为了反映这个问题,我更改了标题。这可能就是你获得否决票的原因。谢谢你,但我已经解决了这个问题@JamieBullSo现在,有相同问题的人更有可能找到答案(并在这个过程中给你放弃投票)。重写has_add_权限只对从ModelAdmin继承的模型有效,但在这种情况下,只使用Model