我一直在做一个关于 django 的项目,它与 instagram 和 twitter 非常相似,它需要的功能之一是在文本字段中使用“@”提及用户。我一直在调查我如何在 django 中做到这一点,除了像 django-mentions 这样的库我不明白它是如何工作的,我几乎一无所获,但我也发现使用 react 是可能的,但是我不知道是否可以对几乎完成的 django 项目实施react。这个功能如何工作?我应该使用 react 还是任何 javascript?
模型.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)
表格.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 %}
如果您有任何问题,请告诉我,记住任何想法都会有所帮助。