考虑一下我们是否有一个表单,其中包含一个由以下用户上传文件的字段:
class PoscastForm(forms.ModelForm):
class Meta:
fields = ("title", "message", "channel", "file", "tag")
model = models.Podcast
def __ini__(self, *args, **kwargs):
user = kwargs.pop("user", None)
super().__init__(*args, **kwargs)
if user is not None:
self.fields["channel"].queryset = (
models.Channel.objects.filter(
pk__in = user.channels.value_list('channel__pk')
)
)
播客模式:
^{pr2}$所以当一个用户上传他的附加文件,它将保存在我的项目根目录!如何改变方向路径? 此窗体的视图如下所示:
class CreatePodcast(LoginRequiredMixin, SelectRelatedMixin,
generic.CreateView):
fields = ("title", "message", "channel", "file", "tag")
model = models.Podcast
def form_valid(self, form):
self.object = form.save(commit=False)
self.object.user = self.request.user
self.object.save()
return super().form_valid(form)
根据documentation,您可以在模型定义中定义文件路径
另外,如果您定义了MEDIA_ROOT,则上载的文件将被发送到
MEDIA_ROOT
的子目录,该子目录定义为upload_to
。有关详细信息,请参阅storage文档。在用户也可以定义上传目录。根据文档:
^{pr2}$相关问题 更多 >
编程相关推荐