Показать таблицы в PostgreSQL

Я сделал бы это путем подкласса RadioFieldRenderer и привязки его к пользовательскому виджету:

# forms.py
from django import forms
from django.forms.widgets import RadioSelect, RadioFieldRenderer
from django.template.loader import render_to_string
from myapp.models import RatherComplicatedModel


class MyRadioFieldRenderer(RadioFieldRenderer):
    def render(self):
        return render_to_string(
            'my_radio_widget.html',
                    {'field': self})


class MyRadioSelect(RadioSelect):
    renderer = MyRadioFieldRenderer


class RatherComplicatedForm(forms.ModelForm):
    RADIO_CHOICES = (
        ('none', "No Textbox"),
        ('one', "One Textbox: "),
    )
    rad = forms.ChoiceField(widget=MyRadioSelect(),choices=RADIO_CHOICES)

    class Meta:
        model = RatherComplicatedModel

Затем шаблон:

#my_radio_widget.html
<ul>
    {% for choice in field %}
        <li>
            <label for="id_{{ field.name }}_{{ forloop.counter0 }}">
                <input type="radio"
                       name="{{ field.name }}"
                       value="{{ choice.choice_value }}"
                       id="id_{{ field.name }}_{{ forloop.counter0 }}"
                       {% if field.value == choice.choice_value %}
                           checked='checked'
                       {% endif %}/>
                {{ choice.choice_label }}
            </label>
        </li>
    {% endfor %}
</ul>
1586
задан Caltor 20 June 2018 в 17:10
поделиться

3 ответа

Из интерфейса командной строки psql ,

Сначала выберите свою базу данных

\c database_name

Затем, это показывает все таблицы в текущей схеме:

\dt

Программно (или из интерфейса psql , конечно):

SELECT * FROM pg_catalog.pg_tables;

Системные таблицы находятся в базе данных pg_catalog .

2468
ответ дан 22 November 2019 в 20:09
поделиться

(для полноты)

Вы также можете запросить (стандарт SQL) информационную схему :

SELECT
    table_schema || '.' || table_name
FROM
    information_schema.tables
WHERE
    table_type = 'BASE TABLE'
AND
    table_schema NOT IN ('pg_catalog', 'information_schema');
118
ответ дан 22 November 2019 в 20:09
поделиться

Самый простой способ перечислить все таблицы в командной строке для моего вкуса:

psql -a -U <user> -p <port> -h <server> -c "\dt"

Для данной базы данных просто добавляют имя базы данных:

psql -a -U <user> -p <port> -h <server> -c "\dt" <database_name>

Это работает и над Linux и над Windows.

0
ответ дан 22 November 2019 в 20:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: