1

i created a model

class ThisUser(models.Model):
     created = models.DateTimeField(auto_now=True)
     message = models.CharField(max_length=120)
     user = models.ForeignKey(User, on_delete=models.CASCADE)

   def __str__(self):
       return self.user

I want to store message specifically for the user who is authenticated. right now this will give me all user who is available in my user model. Please help

  • Possible duplicate of [How to assign currently logged in user as default value for a model field?](https://stackoverflow.com/questions/2414473/how-to-assign-currently-logged-in-user-as-default-value-for-a-model-field) – shad0w_wa1k3r Feb 18 '18 at 08:59

3 Answers3

1

user = models.OneToOneField(User, on_delete=models.CASCADE)

Instead of foriegn key use one to one relation

Vipin Mohan
  • 1,631
  • 1
  • 12
  • 22
0

Well you are suppose to take care of that at view level and not model level, for example this is how I create a new Album:

@login_required
def make_album(request):
if request.method == 'POST':
    form = AlbumCreationForm(request.POST)
    if form.is_valid():
        new_album = core_models.Album(name=form.cleaned_data['name'], description=form.cleaned_data['description'], user=request.user)`
Rasovica
  • 239
  • 1
  • 4
  • 14
0

You can use request.user.id to get user's id for further use.

Peter R.
  • 105
  • 10