Python Django:使用视图和表单复制模型对象
我有一个Django(1.8)模型,它有一些基于类的通用视图:列表、更新、删除、详细信息、创建。 在“详细信息”或“列表”视图上,我有一个按钮要执行此操作:Python Django:使用视图和表单复制模型对象,python,django,Python,Django,我有一个Django(1.8)模型,它有一些基于类的通用视图:列表、更新、删除、详细信息、创建。 在“详细信息”或“列表”视图上,我有一个按钮要执行此操作: 创建对象的副本 将数据加载到表单中,并显示给用户以编辑/保存新对象(可以使用现有的更新或创建视图,还是使用新视图?) 我可以使用以下信息克隆模型: 但是,我不能通过从视图开始,到带有复制对象数据的表单结束来实现这一点 谢谢 局部视图.py class List(ListView): model = Announcement te
class List(ListView):
model = Announcement
template_name = 'announcements/list.html'
class Create(CreateView):
model = Announcement
form_class = AnnouncementForm
template_name = 'announcements/form.html'
def form_valid(self, form):
data = form.save(commit=False)
data.author = self.request.user
data.save()
return super(Create, self).form_valid(form)
class Update(UpdateView):
model = Announcement
form_class = AnnouncementForm
template_name = 'announcements/form_update.html'
@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
return super(Update, self).dispatch(*args, **kwargs)
class AnnouncementForm(forms.ModelForm):
class Meta:
model = Announcement
exclude = ['author']
部分形式.py
class List(ListView):
model = Announcement
template_name = 'announcements/list.html'
class Create(CreateView):
model = Announcement
form_class = AnnouncementForm
template_name = 'announcements/form.html'
def form_valid(self, form):
data = form.save(commit=False)
data.author = self.request.user
data.save()
return super(Create, self).form_valid(form)
class Update(UpdateView):
model = Announcement
form_class = AnnouncementForm
template_name = 'announcements/form_update.html'
@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
return super(Update, self).dispatch(*args, **kwargs)
class AnnouncementForm(forms.ModelForm):
class Meta:
model = Announcement
exclude = ['author']
部分列表.html
{% for object in object_list %}
<p>object.title</p>
<a class="btn btn-danger" href="{% url 'announcements:delete' object.id %}" role="button">Delete</a>
<a class="btn btn-info" href="{% url 'announcements:update' object.id %}" role="button">Edit</a>
<a class="btn btn-primary" href="" role="button">Copy</a>
{% endfor %}
{%for object_list%}
object.title
{%endfor%}
当我点击list.html中的“复制”按钮时,我想复制对象,并以一种形式打开新的副本进行编辑。我想我找到了 url.py
#eg: myapp/5/copy/
#where 5 is the item I want to copy
url(r'^(?P<id>[0-9]+)/copy/$', views.item_copy, name='item_copy'),
我继承了一个名为ManageAnnouncement的基类。您可以将多个类共有的方法或变量放在抽象基类中,并在添加、编辑、删除、复制等过程中继承它,使代码变得“干燥”。欢迎使用堆栈溢出!这个问题有点宽泛;您是否可以包含有关遇到的特定问题的信息?请看,谢谢,我添加了一些特定的代码,这是否足够缩小范围?