**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
response = jsonify(
                {'url': None,
                 'error': "can't find dag {dag} or task_id {task_id}".format(
                     dag=dag,
                     task_id=task_id
                 )}
            )
            response.status_code = 404
            return response
        task = dag.get_task(task_id)
        try:
            url = task.get_extra_links(dttm, link_name)
        except ValueError as err:
            response = jsonify({'url': None, 'error': str(err)})
            response.status_code = 404
            return response
        if url:
            response = jsonify({'error': None, 'url': url})
            response.status_code = 200
            return response
        else:
            response = jsonify(
                {'url': None, 'error': 'No URL found for {dest}'.format(dest=link_name)})
            response.status_code = 404
            return response
    @expose('/object/task_instances')
    @has_dag_access(can_dag_read=True)
    @has_access
    @action_logging
    def task_instances(self):