Как упоминать пользователей, использующих @ in django - PullRequest
1 голос
/ 13 июля 2020

Я работал над проектом django, и он очень похож на instagram и twitter, одна из функций, которые он должен иметь, - это упоминание пользователей, использующих "@" в текстовых полях. Я немного исследовал, как я могу это сделать в django, и я практически ничего не нашел, кроме некоторых библиотек, таких как django-упоминания, которые я не понимаю, как это работает, но я также обнаружил, что это возможно использование реакции, но я не знаю, возможно ли реализовать реакцию на почти готовый проект django. Как может работать эта функция? Должен ли я использовать response или любой javascript?

models.py

class Post(models.Model):
    text = models.CharField(max_length=200)
    user = models.ForeignKey(User, related_name='imageuser', on_delete=models.CASCADE, default='username')

views.py (представление загрузки содержит форму, в которой хранится сообщение для последующего его отображения, а основное представление отображает загруженное сообщение)

def upload(request):

    if request.method == 'POST':
        form = PostForm(request.POST, request.FILES)
        if form.is_valid():
            instance = form.save(commit=False)
            instance.user = request.user
            instance.save()
            return redirect('home')
            print('succesfully uploded')

    else:
        form = PostForm()
        print('didnt upload')
    return render(request, 'home.html', {'form': form})

def main(request):
    contents = Post.objects.all()

    context = {
        "contents": contents,
    }
    print("nice2")
    return render(request, 'home.html', context)

forms.py

class PostForm(forms.ModelForm):

    class Meta:
        model = Post
        fields = ('text')
        exclude = ['user']

html (форма, которая загружает сообщение с текстом, в котором пользователь может ввести @mentions)

<form method="post" action="{% url 'upload' %}" enctype="multipart/form-data">        
    {% csrf_token %}
    <input type="text" name="text" placeholder="Add a comment..." required="" id="id_text">
    <button class="submit-button" type="submit">Save</button>
</form>

html (Здесь отображается сообщение)

{% for content in contents %}
    {% if contents %}
        <div class="element"><p>{{ content.text }}</p></div>
    {% endif %}
{% endfor %}

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

...