Nano Hash - криптовалюты, майнинг, программирование

поле формы встроено с меткой с использованием django-crispy-forms

Я использую crispy для рендеринга своих форм, но у меня возникли проблемы с рендерингом одного встроенного поля, не влияя на другие поля.

Эта форма:

class SettingsUpdateForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ('about_text', 'github_name')
        labels = {
            'about_text': '',
            'github_name': 'github.com/'  # TODO make inline with field
        }
        widgets = {
            'about_text': forms.Textarea(attrs={'placeholder': 'Describe yourself!????'}),
            'github_name': forms.TextInput(attrs={'placeholder': 'your_github_name'})
        }
        help_texts = {
            'github_name': 'Showcase a project instead: <em>/username/fav_project</em>',
        }

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper(self)  # this is required to display the help_texts

выглядит следующим образом: Форма отправки с меткой github/. Поле ввода находится на следующей строке

Я хочу, чтобы метка github/ находилась в одной строке с полем ввода. Как мне это сделать?

Горизонтальные формы сделают все ярлыки быть частью модели сетки начальной загрузки, чего я не хочу.
Я пытался использовать Встроенные формы, которые также не работали.


Ответы:


1

В ваши виджеты вам нужно включить атрибут, который позволит crispyforms знать, как его отображать. Попробуй это:

'github_name': forms.TextInput(attrs={'class': 'form-control', 
                                      'placeholder': 'your_github_name'})

Дайте мне знать, если это работает

27.02.2021
  • к сожалению это ничего не изменило 28.02.2021

  • 2

    Я смог решить это сам с помощью взлома. Это решение, которое я придумал:

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper(self)
        '''
        hacky solution - replace the standard label with a fake label. 
        Wrap those 2 as columns of a Row - use col-auto on first to not have whitespace between.
        Use g-0 to not have gutters between columns - padding and margin would else create whitespace
        '''
        self.helper.layout = Layout(
            Div('about_text'),
            Row(
                # create a "fake" label with a HTML Column
                Column(HTML('<em class="fab fa-github fa-2x"></em> github.com/'), css_class='col-auto'),
                Column('github_name', css_class='col'),
                css_class='row g-0'
            )
        )
    

    Мне также пришлось удалить метку github_name. Но теперь все выглядит хорошо: Ярлык находится на одной линии с полем.

    28.02.2021
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..