Django Union Query

前端 未结 2 377
深忆病人
深忆病人 2021-01-24 22:54

I need to develop a UNION query in Django with 3 models namely WebQuery,WebReply and BusinessOwners and the output should be of the form below.

{
    \"(#convers         


        
相关标签:
2条回答
  • 2021-01-24 23:10

    How can I find the union of two Django querysets? provides an example of a union using the '|' operator. I'm not sure how different your models are. If there's common fields you could place those in a separate model and use model inheritance

    0 讨论(0)
  • 2021-01-24 23:15

    I personally would say that if this is going to be a common query then I would recommend making a SQL View then querying that.

    w3schools has a VERY simple overview of what a view is : http://www.w3schools.com/sql/sql_view.asp

    In SQL, a view is a virtual table based on the result-set of an SQL statement.

    This means you can write your required sql statement and create a view using this. Then create a django model which mirrors that view which you can then use to query.

    So, you will create an SQL view:

    CREATE VIEW view_name AS
        SELECT a, b, c
        FROM table_name
        WHERE condition
    

    Then create a django model, which has a slight difference to a normal model:

    class view_name(models.Model):
        class Meta:
            # https://docs.djangoproject.com/en/1.5/ref/models/options/#django.db.models.Options.managed
            managed = False
    
        a = models.CharField(max_length)
        ....
    

    managed = false > https://docs.djangoproject.com/en/1.5/ref/models/options/#django.db.models.Options.managed

    You can then query this using the normal django orm syntax

    Or there is similar questions:

    Previous stackoverflow question, union in django orm

    How can I find the union of two Django querysets?

    0 讨论(0)
提交回复
热议问题