【发布时间】:2020-11-02 21:43:53
【问题描述】:
我一直在 django 上做一个项目,它与 instagram 和 twitter 非常相似,它需要具备的功能之一是在文本字段中使用“@”来提及用户。我一直在调查我如何在 django 中做到这一点,除了一些像 django-mentions 这样的库,我几乎没有发现任何东西,我不明白它是如何工作的,但我也发现使用 react 是可能的,但是我不知道是否可以对一个几乎完成的 django 项目实施反应。这个功能如何工作?我应该使用 react 还是任何 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 %}
如果您有任何问题,请告诉我,记住任何想法都会有所帮助。
【问题讨论】:
-
@Md.NazmulHassan 你能给出一个答案吗?我之前已经看过那个堆栈问题,但我不明白:(
标签: javascript django reactjs django-models django-views