如何在 Django 中创建动态 "About Me" 页面?
How do I create a dynamic "About Me" page in Django?
在这里,我所说的动态是指我不想为了更新更改而更新我的模板。我希望他们在我的生产站点的管理页面中进行编辑。起初,我以为我会为“关于我”本身创建一个模型,但后来我只需要为一个实例创建一个模型。
我需要这方面的帮助,以及在管理站点上动态编辑我的页面的更好方法。
也许您可以像您提到的那样为 关于我 创建一个模型。既然您已经强调了您想要使用 django admin site
,那么您可以做的是设置只为该模型创建一个对象的权限,该模型可以随时更新。
例如:
models.py
文件.
class AboutMe(models.Model):
# With the desired fields of your choice
现在您可以在 admin.py
文件中设置权限,只允许创建模型中的一个实例。
from django.contrib import admin
from .models import AboutMe
MAX_OBJECTS = 1
# Using decorator here
@admin.register(AboutMe)
class AboutMeAdmin(admin.ModelAdmin):
fields = ['..', '..', '..'] # fields you want to display on the forms
list_display = ['..', '..', '..'] # fields you want to display on the page for list on objects
# Allowing the user to only add one object for this model...
def has_add_permission(self, request):
if self.model.objects.count() >= MAX_OBJECTS:
return False
return super().has_add_permission(request)
这应该很适合您的情况。此外,您可以阅读 docs 以了解有关自定义 django admin site
.
的更多信息
在这里,我所说的动态是指我不想为了更新更改而更新我的模板。我希望他们在我的生产站点的管理页面中进行编辑。起初,我以为我会为“关于我”本身创建一个模型,但后来我只需要为一个实例创建一个模型。
我需要这方面的帮助,以及在管理站点上动态编辑我的页面的更好方法。
也许您可以像您提到的那样为 关于我 创建一个模型。既然您已经强调了您想要使用 django admin site
,那么您可以做的是设置只为该模型创建一个对象的权限,该模型可以随时更新。
例如:
models.py
文件.
class AboutMe(models.Model):
# With the desired fields of your choice
现在您可以在 admin.py
文件中设置权限,只允许创建模型中的一个实例。
from django.contrib import admin
from .models import AboutMe
MAX_OBJECTS = 1
# Using decorator here
@admin.register(AboutMe)
class AboutMeAdmin(admin.ModelAdmin):
fields = ['..', '..', '..'] # fields you want to display on the forms
list_display = ['..', '..', '..'] # fields you want to display on the page for list on objects
# Allowing the user to only add one object for this model...
def has_add_permission(self, request):
if self.model.objects.count() >= MAX_OBJECTS:
return False
return super().has_add_permission(request)
这应该很适合您的情况。此外,您可以阅读 docs 以了解有关自定义 django admin site
.