我正在为我的用户使用Django User模型。我需要的是在用户管理员上添加一个动作,使我能够向我选择的用户发送短信。 这就是它应该如何运作:
到目前为止,我必须创建另一个模型:
class UserProfile(models.Model):
user = models.OneToOneField(User) #extended the User model
phone_number = models.CharField(u'Number', max_length=20)
然后是短信的表格:
class TextMessageForm(ModelForm):
class Meta:
model = TextMessage
fields = ('sender', 'to', 'message')
但我在向User模型添加操作时遇到问题(引发了#34;模型已经注册的错误"我通过取消注册解决了这个问题,但是用户模型中的密码是可见的。那&# 39;为什么我创建了UserProfile模型)
那么,我是否可以向User模型添加操作,而不必弄乱它如何在管理员上显示内容? 我可以将操作重定向到文本表单(或其他模板)吗? 或者这是一个不好的方式来考虑它...我使用this API发送我的文本。你能提供什么方向?
答案 0 :(得分:2)
您可以扩展UserAdmin管理页面:
# admin.py
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
# Define a new User admin
class UserAdmin(UserAdmin):
"""My User Admin"""
# eg.
form = MyFancyForm
# or use my fancy template for the form
add_form_template = 'myadmin/user/add_form.html'
# or maybe add it to the change list
change_list_template = 'myadmin/user/change_list.html'
# Re-register UserAdmin
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
https://docs.djangoproject.com/en/1.7/topics/auth/customizing/#extending-the-existing-user-model
如果您只想添加一个按钮转到另一个页面发送消息,我会修改列表模板以添加该按钮。