如何在Django中引用与另一个表中的外键匹配的列?

2024-06-08 06:47:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Django很陌生。我遇到了一个问题,我需要从另一个表中引用既不是主键也不是唯一值的列。这是我的代码:

class Assignment(models.Model):
    assignment_id = models.CharField(primary_key=True, max_length=11)
    investor_id = models.ForeignKey('Investor', to_field='investor_id', models.DO_NOTHING)
    issuer_id = models.ForeignKey('Issuer', to_field='issuer_id', models.DO_NOTHING)
    investor_risk_attitude = models.ForeignKey('Investor', to_field='investor_risk_attitude', models.Do_NOTHING)
    interest_rate = models.FloatField(blank=True, null=True)
    tranche = models.CharField(max_length=20, blank=True, null=True)

    def get_absolute_url(self):
        return reverse ('assignment:index')

    class Meta:
        managed = False
        db_table = 'assignment'

    def __str__(self):
        return self.assignment_id


class Investor(models.Model):
    investor_id = models.CharField(primary_key=True, max_length=11)
    investor_name = models.CharField(max_length=45, blank=True, null=True)
    investor_risk_attitude = models.CharField(max_length=45, blank=True, null=True,db_index=True)

    def get_absolute_url(self):
        return reverse ('investor:index')

    class Meta:
        managed = False
        db_table = 'investor'

    def __str__(self):
        return self.investor_id

    class Issuer(models.Model):
    issuer_id = models.CharField(primary_key=True, max_length=11)
    issuer_name = models.CharField(max_length=45, blank=True, null=True)
    issuer_category = models.CharField(max_length=45, blank=True, null=True)
    total_pool_amount = models.FloatField(blank=True, null=True)
    login_id = models.CharField(max_length=45, blank=True, null=True)
    login_password = models.CharField(max_length=45, blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'issuer'

    def __str__(self):
        return self.issuer_id

在赋值表中,我需要引用投资者表中的投资者风险态度,我已经做了一个指数,但它不是唯一的值。因为investor iu id也是赋值表中的外键,所以我需要风险的态度来匹配这里的investor iu id。在

我还有一个表单,允许用户向表中添加新的分配记录,代码如下。在

^{pr2}$

如果用户在表单中的下拉菜单中选择了投资者,我是否可以以相应的风险态度来执行此操作?非常感谢你?在


Tags: selfidtruereturnmodelsdefinvestornull
1条回答
网友
1楼 · 发布于 2024-06-08 06:47:45

我想当投资者选择字段发生变化时,你需要服务器实时响应。在

您可以通过在#id_investor_id更改期间调用ajax函数来完成此操作。在

在模板中

$(document).on("change", "#id_investor_id", function(){
        var value = $(this).val();
        showDetail(value);
});


function showDetail(value){ 
    if(value !== "" || value !== null){
        var url = "{% url 'get_value' %}";
        $.ajax({
            type : "GET",
            url : url,
            data: { 
                id : value
            } ,
            dataType : 'json',
            success : function(data){
                var status = data['status'];
                alert(status);
            },
        });
    }
}

在视图.py在

^{pr2}$

在网址.py在

url(r'^get-value/$', views.get_value, name='get_value'),

如果您想保存同一模型中的两个字段,请将相关的_name=“investor_risk_Atity_U%(class)s_objects”添加到您的字段中。在

相关问题 更多 >

    热门问题