簡體   English   中英

如何修復我的 Django model 以存儲用戶輸入的多個字符串列表。 將來可以檢索哪個 object?

[英]How can I fix my Django model to store multiple lists of strings inputted by the user. Which can then be retrieved in the future as an object?

我正在嘗試制作這個簡單的應用程序來檢索用戶輸入的字符串列表,然后將其存儲在 object 中。 這個想法是讓用戶為他們喜歡的每種類型創建一個電影列表。 一種“用戶創建的詞典”的說法......

就像在 Python 中一樣:

UserMovies = {
Scary : ['A','B','C'],
Funny : ['D'],
Sad : ['E','F],
Thriller : ['G','H','I','J'] 
}

使用上面的示例,理想的Model.py將在列表中存儲用戶創建的字典鍵,然后存儲鍵的值。

我試圖在我的 Django model 中復制相同的內容,但我不確定如何創建將數據存儲在列表中的多對多關系。

編輯:我做了新的更正,這是最新的 model。

class UserGenres(models.Model):
    
    username = models.ForeignKey(UserModel.username)
    genre = models.ManyToManyField(models.CharField(max_length=1000))

    def __str__(self):
        return self.genre

class TotalGenre(models.Model):

    username = models.ForeignKey(UserGenres.user)
    total_Genre = models.IntegerField(blank=True, null=True)

    def total_genre(self):
        self.total_genre = UserGenre.objects.aggregate(Sum('genre', distinct=True))
        self.save()


class Movies(models.Model):

    owner = models.ManyToManyField(UserGenre.user)
    genre = models.ManyToManyField(UserGenre.genre)
    movies = ArrayField(models.CharField(choices=MOVIES)) 
    number_of_movies = models.IntegerField(blank=True, null=True)

        def total_movies(self):
        self.number_of_movies = Movies.objects.aggregate(Sum('number_of_movies ', distinct=True))
        self.save()

        def __str__(self):
            return self.movies

我正在努力為每個用戶存儲類型,包括類型中的電影。 所有這些都是一個 CRUD 應用程序。 鑒於信息,構建 model 的最佳方法是什么? 目前正在努力解決這個問題。

會是這樣的, 閱讀

#https://docs.djangoproject.com/en/3.1/ref/models/fields/#manytomanyfield
class Genre(models.Model):
    title = models.TextChoices(max_length=1000, choices=IMDBmoviesTuple)

class UserGenres(models.Model):
    user = models.ForeignKey(UserModel.username)
    genres = models.ManyToManyField(max_length=1000) #this will be array

class Movie(models.Model):
    #movie name etc
    genre = models.ManyToManyField(max_length=1000) #many to many, one movie can be of many genres

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM