Ali*_*lov 8 django django-flatpages
我主要使用flatpages作为一个站点(来自站点框架).如何为所有创建的flatpages标记现有网站默认值?每次为每个创建的页面选择相同的站点都浪费时间.有没有办法在模型或保存方法中覆盖它?
允许在站点字段中显示空白(models.py - > FlatPage.sites)并将其放在模型表单中(admin.py - > FlatPageForm)
def clean_sites(self):
sites = self.cleaned_data.get('sites')
print sites
return [Site.objects.get(id=settings.SITE_ID)]
Run Code Online (Sandbox Code Playgroud)
编辑:
我想出了一个更好的解决方案.
这使得当前站点已经集中在ManyToMany站点字段中.编辑flatpages/admin.py.添加:from django.contrib.sites.models import Site在文件的开头,并将以下代码放入class FlatPageAdmin:
def formfield_for_manytomany(self, db_field, request=None, **kwargs):
if db_field.name == "sites":
kwargs["initial"] = [Site.objects.get_current()]
return super(FlatPageAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
Run Code Online (Sandbox Code Playgroud)
FlatPage模型中的站点字段不需要允许空白
这是我的代码,它有效:
class CustomFlatPage(FlatPage):
def save(self):
super(CustomFlatPage, self).save()
self.sites = [Site.objects.get(pk=1)]
super(CustomFlatPage, self).save()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1944 次 |
| 最近记录: |