[英]How do I add a table limited to only one row in mysql/django?
我正在為一個小項目使用 Django,我想制作一個只有一行的表格,以在其中添加項目的描述。 我只需要一行,僅此而已,因為它是整個站點的一個描述,我不希望用戶能夠添加多個描述。
我用以下代碼解決了問題
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()
是的,可以這樣做。 可以說您的模型是MyDescModel。
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()
希望這可以幫助。
最簡單和最好的方法是使用“has_add_permission()” :
“模型.py” :
from django.db import models
class MyModel(models.Model):
name = models.CharField(max_length=50)
“管理員.py” :
from django.contrib import admin
from .models import MyModel
@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
def has_add_permission(self, request): # Here
return not MyModel.objects.exists()
您可以查看有關has_add_permission()的文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.