0

在我的数据库中,Instrument对象可以有很多CalibrationCertificate对象,这些对象只包含一个 ForeignKey 到Instrument、一个发布日期和一个过期日期。这两个日期都是自动计算的,不需要用户输入。因此,有没有办法可以在Instrument_Detail视图上放置一个按钮,将新CalibrationCertificate记录添加到数据库中,并将instrument字段设置为当前对象?

4

1 回答 1

0

这是恕我直言,最好的解决方案。要在重定向视图中自定义 url,请使用 get_redirect_url。

视图.py

class AddCalibrationCertificateView(RedirectView):
    http_method_names = ['post']
    url = '/instrument/1/'

    def post(self, request, *args, **kwargs):
        '''Here you add new certificate object, use self.kwargs['instrument_pk']
           to get related instrument
        '''
        return super(AddCalibrationCertificateView, self).post(request, *args, **kwargs)

new_cert = AddCalibrationCertificateView.as_view()

网址.py

url(r'^add/certificate/(?P<instrument_pk>\d+)/$', 'views.new_cert', name='new_cert'),

仪器.html

<form action="{% url 'new_cert' 1 %}" method="post">{% csrf_token %}
    <input type="submit" value="Add cert" />
</form>
于 2013-08-15T10:51:45.343 回答