在同一型号上使两个外键唯一

时间:2018-06-10 06:44:45

标签: django django-models

我有一个这样的模型:

function CreateChartImage() {
        try {
            var ElementCount = "";
            if ($('#hdnIsPostBack').val() == 0) {
                ElementCount = $('#hdnElementCount').val();
            }
            else {
                ElementCount = $("#lstBoxBusinessElement option:selected").length;
            }
            for (i = 1; i <= ElementCount; i++) {
                var imagData = $('#DyndivChrt' + i).jqplotToImageStr({});
                var imgElem = $('<img/>').attr('src', imagData);
                var title = $('#lblTitle' + i).text();
                $('#imgChartToPdf').append('<div class="box-header with-border" style="width: 49.6%; text-align: center; border-radius: 3px;background-color: rgb(255, 255, 255);border-top: 3px solid #3c8dbc;"><h3 class="box-title"><span>' + title + '</span></h3></div>');
                $('#imgChartToPdf').append(imgElem);
            }
            if (i > 1) {
                downloadpdf();
            }
        } catch (e) {
            alert(e)
        }
    }
    var doc = new jsPDF();
    var specialElementHandlers = {
        '#editor': function (element, renderer) {
            return true;
        }
    };
    function downloadpdf() {
        try {
            debugger;
            doc.fromHTML($('#imgChartToPdf').html(), 15, 15, {
                'width': 170,
                'elementHandlers': specialElementHandlers
            });
            doc.save('Charts.pdf');
        } catch (e) {
            alert(e)
        }
    }

确保“开始”的最佳方式是什么?并且&#39;结束&#39;积分不一样?是否只有表单验证方法?

1 个答案:

答案 0 :(得分:0)

您应该检查数据库规范化。 因为您只需要一个具有外键指向的项目。在你的模型中,既不是开始也不是结束而是另一个。例如,试试这个:

class Connection(models.Model):
connection = models.ForeignKey('Point', on_delete=models.CASCADE, related_name='connection')
start-date = models.DateField(default=datetime.date.today)
end-date = DateField()

我认为你的“开始”和“结束”可能与日期问题有关,这就是为什么我也更新了它们。如果我的假设是正确的,那么您可以检查有关Django DateField或DateTimeField的更多信息。