Django форма с выбором модели заполнена

У меня проблема с формой в django. Я создал модель формы, но он не сохраняет поле выбора в базу данных. Форма сохраняет только заголовок (CharField). Я создал функцию, которая решает проблему, но я думаю, что она плохая и может быть написана намного лучше. Есть помощь?

models.py

TOPIC_CAT = [
   ('WEL', 'Spawlnictwo'),
   ('DIY', 'Majsterkowanie'),
   ('ELE', 'Elektryka'),
   ('IT', 'Informatyka'),
   ('CAT', 'Stolarstwo'),
]

class Topic(models.Model):
    text = models.CharField(max_length=200)
    date_added = models.DateTimeField(auto_now_add=True)
    categories = models.CharField(max_length=3, choices=TOPIC_CAT)
    
    def __str__(self):
        return self.text

forms.py

class NewTopic(forms.ModelForm):
    class Meta:
        model = Topic
        fields = ['text', 'categories']
        labels = {'text':'Nazwa tematu', 'categories': 'Kategoria'}

views.py

def new_topic(request):
    if request.method=='POST':
       form = Search(data=request.POST)
       if form.is_valid():
          new_topic = form.save(commit=False)
          new_topic.categories = request.POST.get('categories')
          new_topic.save()
          return redirect('forum:topics_in_category', category=cat)
    else:
       form = NewTopic()
    context = {'form': form}
    return render(request, 'forum/new_topic.html', context)

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

Вернуться на верх