Ale*_*Mal 2 python django django-models
在我的 django 项目中,我有一个 model.py ,其中包含如下类:
class temp_main(models.Model):
descr = models.CharField(max_length=200, verbose_name="Description")
notes = models.TextField(null=True, blank=True, verbose_name="Note")
dt = models.DateTimeField(auto_now=True)
#Fields for API permissions
owner = models.ForeignKey('auth.User', related_name='tmain_owner', on_delete=models.CASCADE, verbose_name="API Owner")
class Meta:
verbose_name = '1-Main Template'
verbose_name_plural = '1-Main Templates'
def __str__(self):
return self.descr
Run Code Online (Sandbox Code Playgroud)
我希望在我的管理面板中,所有者字段会自动填充当前登录用户。在我的 admin.py 中我写道:
admin.site.register(temp_main, )
Run Code Online (Sandbox Code Playgroud)
如何使用登录用户设置我的所有者字段?
提前致谢
我认为你需要的是save_model方法。它的使用方法如下(来自文档):
from django.contrib import admin
from myproject.myapp.models import Article
class ArticleAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
obj.user = request.user
super().save_model(request, obj, form, change)
admin.site.register(Article, ArticleAdmin)
Run Code Online (Sandbox Code Playgroud)
我认为你可以obj.user根据obj.owner你的情况改变。那样有用吗?
另外,我认为您可能希望将类的名称更改temp_main为,然后在文件TempMain中命名该类。Django 将使用此命名方案来了解哪个管理模型与哪个模型对应。admin.pyTempMainAdmin
| 归档时间: |
|
| 查看次数: |
1504 次 |
| 最近记录: |