**Apache Airflow version**:

master

**Kubernetes version (if you are using kubernetes)** (use `kubectl version`):

**Environment**: breeze

**What happened**:

This DAG
```python
from airflow import models
from airflow.operators.dummy_operator import DummyOperator
from airflow.utils.dates import days_ago

with models.DAG("test", start_date=days_ago(1), schedule_interval=None,) as dag:
    t1 = DummyOperator(task_id="t1")
    t2 = DummyOperator(task_id="t2")
    t1 >> t2
```

is rendering like that:

<img width="1374" alt="Screenshot 2020-08-27 at 19 59 41" src="https://user-images.githubusercontent.com/9528307/91478403-11d7fb00-e8a0-11ea-91d0-d7d578bcb5a2.png">

**What you expected to happen**:

I expect to see same relations as defined in DAG file

**How to reproduce it**:

Render the example DAG from above.


**Anything else we need to know**:

I'm surprised by this bug 👀 

airflow/www/views.py
"""Last DAG runs"""
        allowed_dag_ids = current_app.appbuilder.sm.get_accessible_dag_ids()
        if 'all_dags' in allowed_dag_ids:
            allowed_dag_ids = [dag_id for dag_id, in session.query(models.DagModel.dag_id)]
        
        selected_dag_ids = {
            unquote(dag_id) for dag_id in request.form.getlist('dag_ids') if dag_id
        }
        if selected_dag_ids:
            filter_dag_ids = selected_dag_ids.intersection(allowed_dag_ids)
        else:
            filter_dag_ids = allowed_dag_ids
        if not filter_dag_ids:
            return wwwutils.json_response({})
        query = session.query(
            DagRun.dag_id, sqla.func.max(DagRun.execution_date).label('last_run')
        ).group_by(DagRun.dag_id)
        
        query = query.filter(DagRun.dag_id.in_(filter_dag_ids))  
        resp = {
            r.dag_id.replace('.', '__dot__'): {
                'dag_id': r.dag_id,
                'last_run': r.last_run.isoformat(),
            } for r in query
        }
        return wwwutils.json_response(resp)
    @expose('/code')
    @has_dag_access(can_dag_read=True)