我想在 Django 管理面板中查看所有用户,我可以 select 多个用户
i want to see all the users in django admin panel and i can select more than one user
你好,我对模型做了一些修改,得到了 User.username 并将它们插入到 user_list 和 multiselectfield(choices=user_list)
工作正常,但在我 made/create 新用户的情况下
然后我转到 select 多个用户的应用程序,我新创建的用户没有显示在那里
直到我重新启动 Django 服务器
我的模型是这样的:
class Video(models.Model):
listo = []
user = User.objects.all()
for i in user:
a = (str(i), str(i))
listo.append(a)
print("this is listo", listo)
caption = models.CharField(max_length=100)
video = models.FileField(upload_to="video/%y",null=True,blank=True)
show_to = MultiSelectField(choices=User.username)
# show_to = models.ForeignKey(User, on_delete=models.CASCADE)
url_video= models.URLField(blank=True)
def __str__(self):
return self.caption
我想要的是立即在 Django 应用程序中显示新创建的用户,这样我就无法一次又一次地重新启动服务器。
提前致谢!
您定义的模型选择在您的服务器启动或重新启动时设置一次,因此您的选择在添加用户后不会更新。
您为模型创建了一个 ModelForm,并在 init 表单方法中为模型字段设置选项。打开表单时,每次调用表单的构造函数并设置选项。
from django import forms
class VideoForm(forms.ModelForm):
...
...
def __init__(self, *args, **kwargs):
super(VideoForm, self).__init__(*args, **kwargs)
self.fields['show_to'].choices = self.get_dynamic_choices()
def get_dynamic_choices(self):
choices = [(obj.id, obj.username) for obj in User.objects.all()]
return choices
你好,我对模型做了一些修改,得到了 User.username 并将它们插入到 user_list 和 multiselectfield(choices=user_list) 工作正常,但在我 made/create 新用户的情况下 然后我转到 select 多个用户的应用程序,我新创建的用户没有显示在那里 直到我重新启动 Django 服务器
我的模型是这样的:
class Video(models.Model):
listo = []
user = User.objects.all()
for i in user:
a = (str(i), str(i))
listo.append(a)
print("this is listo", listo)
caption = models.CharField(max_length=100)
video = models.FileField(upload_to="video/%y",null=True,blank=True)
show_to = MultiSelectField(choices=User.username)
# show_to = models.ForeignKey(User, on_delete=models.CASCADE)
url_video= models.URLField(blank=True)
def __str__(self):
return self.caption
我想要的是立即在 Django 应用程序中显示新创建的用户,这样我就无法一次又一次地重新启动服务器。 提前致谢!
您定义的模型选择在您的服务器启动或重新启动时设置一次,因此您的选择在添加用户后不会更新。
您为模型创建了一个 ModelForm,并在 init 表单方法中为模型字段设置选项。打开表单时,每次调用表单的构造函数并设置选项。
from django import forms
class VideoForm(forms.ModelForm):
...
...
def __init__(self, *args, **kwargs):
super(VideoForm, self).__init__(*args, **kwargs)
self.fields['show_to'].choices = self.get_dynamic_choices()
def get_dynamic_choices(self):
choices = [(obj.id, obj.username) for obj in User.objects.all()]
return choices