Forma Alter Django
Aug 19 2020
Como posso ajustar meu código para que um usuário não possa escolher outro usuário para uma nova postagem. Quero fazer com que o usuário conectado seja automaticamente adicionado como autor.
Eu tentei definir a parte dos campos em views.py apenas para o campo de conteúdo, mas não funciona
models.py
class post(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
content = models.CharField(max_length=140)
views.py
class CreatePostView(CreateView):
model = post
fields = '__all__'
template_name = 'users/create.html'
Myform.html
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Login">
</form>
Respostas
1 bkrop Aug 18 2020 at 23:50
class CreatePostView(CreateView):
model = post
template_name = 'users/create.html'
fields = ['content']
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)
MukheemMohammed Aug 18 2020 at 23:51
Você pode inserir manualmente o valor do usuário usando request.user.username
(ou) Dê uma olhada nisto . A resposta do questionador está localizada na parte inferior.
AbhishekBera Aug 19 2020 at 00:37
Existem 3 coisas que você precisa fazer:
- Proteja a página, para que usuários anônimos não possam acessá-la, usando
LoginRequiredMixin
- Remova o usuário dos campos
- Insira o usuário atual no formulário enviado depois que o formulário for postado, usando o
form_valid
método
from django.views.generic.edit import CreateView
from django.contrib.auth.mixins import LoginRequiredMixin
class CreatePostView(LoginRequiredMixin, CreateView):
model = Post
fields = ["content"]
template_name = "create.html"
def form_valid(self, form):
form.instance.user = self.request.user
return super().form_valid(form)
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas